vault backup: 2023-04-17 16:38:57

This commit is contained in:
2023-04-17 16:38:57 +02:00
parent f81f042b9b
commit 21ce6384b7
6 changed files with 665 additions and 71 deletions

10
.obsidian/app.json vendored
View File

@@ -1 +1,9 @@
{}
{
"pdfExportSettings": {
"includeName": true,
"pageSize": "A4",
"landscape": false,
"margin": "0",
"downscalePercent": 100
}
}

View File

@@ -175,6 +175,19 @@ Passworts
Prepared
Placeholders
PreparedStatement
PNG
Parameterisierte
Platzhalter
Procedures
Privilege
Prinzip
Passwörter
Phishing
Persistiend
Persistierendes
Postleitzahlen
Policy
Protection
obj
oV
oYj
@@ -362,6 +375,13 @@ oljl
oHkA
one
once
oder
output
occur
occurs
only
other
ohne
Length
LCw
LN
@@ -586,6 +606,10 @@ LxK
LrHS
Live
Login
Least
Like
Link
Leerzeichen
Filter
FlateDecode
Ff
@@ -812,6 +836,13 @@ FAE
FROM
Fügt
From
Fehlerbehandlung
Flash
Formularen
Fall
Forum
Format
Filtern
stream
se
sH
@@ -1018,6 +1049,29 @@ statement
statements
seperation
setString
sogar
sie
sorgfältige
sind
sieht
start
sogt
script
sent
stored
server
sich
sensible
schädlichen
schädliche
statt
selbst
sondern
schwieriger
spezieller
sicherzustellen
spezielle
sicher
ZKs
ZN
Zf
@@ -1228,6 +1282,10 @@ ZXt
ZOP
ZNeRk
Zeile
Zugriff
Zeichen
Zusammenhang
Zum
Who
We
WE
@@ -1431,6 +1489,18 @@ Wählt
Wird
What
Which
Webanwendungen
Werte
Whitelisting
Wahrscheinlichkeit
WAoLCuHqYVKBPATEYnT
When
Webanwendung
Website
Wenn
Whitelists
Werten
World
KI
Kt
KF
@@ -1629,6 +1699,11 @@ Kiy
KbG
Keywords
Kommentar
Kontrolle
Kontext
Kommentarfunktion
Kreditkarteninformationen
Kommentarbereich
bq
bQ
bG
@@ -1826,6 +1901,21 @@ beeinflussen
buchstaben
bedeutet
between
bei
bevor
bestimmte
blockiert
benötigen
begrenzen
because
browser
being
bösartige
besuchen
betreffen
based
betroffen
background
iZ
ig
iA
@@ -2053,6 +2143,18 @@ instead
input
intent
into
implementieren
ihrer
ihre
immune
included
information
injected
ihren
infizierte
injiziert
interpretieren
image
GJe
GAG
GJ
@@ -2241,6 +2343,10 @@ GkU
Gwo
GRANT
Gibt
GoatRouter
Geldtransfers
Geräten
Gegensatz
AO
Aw
Az
@@ -2438,6 +2544,26 @@ ADD
Authentication
Advanced
Abfrage
Aufgaben
Angreifer
Anfragen
Anwendung
Angriffe
Anweisungen
Anwendungen
Aktivitäten
Angriffsfläche
Auswirkungen
Angriffs
Antwort
Are
Art
Aktionen
Angriff
Angriffen
Adressen
Anführungszeichen
Aktualisieren
QV
Qom
QJ
@@ -2876,6 +3002,12 @@ nqU
nHq
name
nimmt
nutzt
neutralisiert
nur
notwendigen
not
nicht
YJ
Yb
YwM
@@ -3300,6 +3432,8 @@ Updated
Und
User
Username
URL
URLs
TZ
TF
TP
@@ -3506,6 +3640,12 @@ Tobi
TABLE
TRUE
The
TMU
Trennung
They
That
Telefonnummern
Teil
gO
gHoVo
gD
@@ -3705,6 +3845,17 @@ gibt
got
gets
getConnection
gesendet
gespeicherte
gefährlichen
grundlegendes
goatApp
geschützte
gespeichert
gefährlicher
gleichzeitig
gültige
geladen
DMg
Dv
DLg
@@ -3909,6 +4060,16 @@ Daten
Datenbank
DROP
Durch
Dadurch
Das
Datenintegrität
Durchführung
Die
Datenbankzugriffe
DOM
Document
Der
Datenformaten
xU
xM
xK
@@ -4080,6 +4241,7 @@ xyq
xVV
xYI
xYO
xRbDfnd
Hx
HV
HdH
@@ -4269,6 +4431,10 @@ HtjP
HJJ
HXe
How
HTML
Hello
Header
HTTP
zo
zL
zE
@@ -4478,6 +4644,9 @@ zKT
zvj
zDw
zum
zugreifen
zur
zurück
hr
hAa
hH
@@ -4678,6 +4847,10 @@ hinzu
herrausfinden
has
happens
hilft
hingegen
heruntergeladen
häufig
pt
ps
pao
@@ -4883,6 +5056,13 @@ pre
prevent
person
prepareStatement
potenziell
potenzielle
param
phoneHome
permanently
part
perform
Ic
IT
Ir
@@ -5087,6 +5267,17 @@ Izj
Intro
Ist
Injection
IHDR
Izd
IEND
Idee
Injections
Inhalte
Informationen
Identitätsdiebstahl
Installation
Input
Injektions
ap
aE
at
@@ -5279,6 +5470,32 @@ access
alles
are
attached
ausreichenden
anschließend
aufgerufen
alle
abzulehnen
andere
auszuführen
angewendet
alert
ausführt
attacks
acknowledged
any
anderen
ausreichende
angezeigt
als
ausgeben
ahnungslosen
ausgeführt
anklickt
abzielt
angewiesen
akzeptiert
anzuzeigen
anstatt
fb
fVVvD
fh
@@ -5547,6 +5764,10 @@ following
for
faster
form
führen
from
finden
findet
Bs
ByJ
BF
@@ -5729,6 +5950,20 @@ Barnett
Benutzer
Bobbiifsjodsjooiadndlsacjoeaicnaksjoidjkxnkxioajoimklxkjhbhubhub
Buchstabe
Bei
Bedarf
Benutzereingaben
Benutzerkonten
Berechtigungen
Benutzerseite
Blogs
Benutzerdaten
Benutzers
Benutzern
Benutzeranfrage
Browser
Beispiel
Bibliotheken
ek
eP
eVPm
@@ -5995,6 +6230,27 @@ exestierende
eine
einem
egal
erlangen
ergreifen
ersetzt
eingefügt
erkennen
erlaubt
erhalten
ein
eines
eingeschränkt
erfolgreichen
executes
ermöglicht
einzufügen
einfügt
einschleusen
einen
erstellt
enthält
erwarteten
etc
tj
tg
tt
@@ -6248,6 +6504,15 @@ thisisasecretfortomonl
the
than
that
tatsächlichen
tGJaJPRHR
trusted
trusts
then
there
type
treten
tritt
JFRO
JG
JL
@@ -6446,6 +6711,8 @@ JzF
JfC
Jxs
John
JSESSIONID
JavaScript
kXW
kW
kp
@@ -6627,6 +6894,14 @@ kkaN
kyvx
kpathsea
kann
keine
können
kompiliert
know
kommt
kodierten
kodieren
kodiert
EU
Evq
Er
@@ -6824,6 +7099,20 @@ EZw
EUj
EuQ
Employee
Eingabevalidierungen
Escaping
Entwickler
Eingabevalidierung
Eingaben
Einige
Eingeschränkte
Einsatz
Einschränkung
Ein
Engineering
Erkennung
Encoding
Entitäten
lX
ll
lC
@@ -7024,6 +7313,7 @@ last
log
löscht
length
logging
wG
wd
ws
@@ -7201,6 +7491,17 @@ waiting
way
with
writes
wichtig
webgoat
websites
website
web
without
when
ways
wenn
wie
was
RmZh
Rp
RJ
@@ -7419,6 +7720,10 @@ RYZ
Rechte
Rest
Robert
Reflected
Ressourcen
Reflektiertes
Risiko
vJ
vS
vKDF
@@ -7629,6 +7934,22 @@ verändert
vergeben
values
variables
von
vertrauliche
verhindern
verschiedene
vorab
vorkompilierte
verdächtige
verringern
view
validated
victim
vorallem
vom
vorliegen
verwendet
vertrauenswürdige
XE
Xd
XRb
@@ -7818,6 +8139,7 @@ XHkBp
Xbb
XmS
XDt
XSS
NW
Ni
Nj
@@ -8224,6 +8546,7 @@ jvw
jMs
jkD
join
jpg
My
Mm
MO
@@ -8405,6 +8728,14 @@ Myl
ModDate
Man
Mitigation
Mechanismen
Manipulation
Maßnahmen
Minimalberechtigung
Malware
Mails
Model
Mail
qO
qj
qG
@@ -9002,6 +9333,10 @@ unauthorized
user
userid
users
unerlaubtem
unerwünschte
unsicheren
url
ma
ml
mB
@@ -9197,6 +9532,12 @@ mDK
mit
management
malicious
minimalen
minimal
mvc
many
mehrere
macht
dg
dw
de
@@ -9426,6 +9767,21 @@ diese
des
difference
database
dabei
darauf
dem
dahinter
dies
document
does
dynamic
dieser
durchzuführen
dann
diesen
direkt
diesem
deren
VV
VA
Vsm
@@ -9638,6 +9994,13 @@ VHCh
VbL
Version
Verändert
Verlust
Verwendung
Views
Validierung
Verbreitung
Vorbeugung
Vermeiden
SGN
Sg
SrEHO
@@ -9859,6 +10222,30 @@ Smith
Solution
SQL
Students
Sicherheitslücken
Systemkompromittierung
Statements
Stored
System
Sicherheitskonzept
Sicherheitsvorfalls
Site
Scripting
Seite
Sicherheitslücke
Skripte
Schwachstellen
Sitzungstoken
Sitzung
Schadcode
Server
Social
Sicherstellen
Sonderzeichen
Schrägstriche
Skript
Sicherheits
Security
rn
rE
rD
@@ -10072,6 +10459,15 @@ richig
resulting
register
registers
reagieren
reduzieren
requesting
reflect
request
reflcted
reflektiertes
resultiert
richtigen
Cu
CL
Ch
@@ -10250,6 +10646,14 @@ CHz
Creator
CreationDate
Count
Cross
Console
Code
Cookies
Client
Codes
CSS
Content
OM
OWR
Os
@@ -10418,6 +10822,9 @@ OdD
OFV
OQyO
Output
Objektberechtigungen
Object
Only
cgl
cj
content
@@ -10596,11 +11003,16 @@ characters
can
compiled
code
cookie
customjs
codieren
codiert
öUS
öG
Überweisungsdetails
Überweisungsinformationen
Üv
Überprüfen
Äd
äz
äh
@@ -10611,6 +11023,7 @@ code
üXI
üS
ükZ
über
ßc
ßI
ßVq

View File

@@ -1,15 +1,15 @@
{
"main": {
"id": "985a28639027cb68",
"id": "1345ce316d57bf13",
"type": "split",
"children": [
{
"id": "70d3e404042bb7e1",
"id": "08ad9b53ade42d31",
"type": "tabs",
"dimension": 58.991008991009,
"dimension": 62.59025270758123,
"children": [
{
"id": "8d74a64b5bdd799c",
"id": "e2194e3299515374",
"type": "leaf",
"state": {
"type": "markdown",
@@ -23,12 +23,12 @@
]
},
{
"id": "09960489beb8807f",
"id": "47553fa673bb1eb6",
"type": "tabs",
"dimension": 41.008991008991,
"dimension": 37.40974729241877,
"children": [
{
"id": "9acdf2a1e42ed9ec",
"id": "20668ba691cd80b3",
"type": "leaf",
"state": {
"type": "pdf",
@@ -43,15 +43,25 @@
"direction": "vertical"
},
"left": {
"id": "cddcefee340fb8a5",
"id": "e5fbdfc2085faa4b",
"type": "split",
"children": [
{
"id": "94d495814220bf82",
"id": "e02674fc64edf0b5",
"type": "tabs",
"children": [
{
"id": "70ca5d990fce7a86",
"id": "b8336cb3c3d06be9",
"type": "leaf",
"state": {
"type": "file-explorer",
"state": {
"sortOrder": "alphabetical"
}
}
},
{
"id": "14611a26bf336471",
"type": "leaf",
"state": {
"type": "search",
@@ -66,40 +76,29 @@
}
},
{
"id": "d5e695bcc8cab13d",
"id": "344d14435301d3da",
"type": "leaf",
"state": {
"type": "starred",
"state": {}
}
},
{
"id": "e66cc33cf17c042a",
"type": "leaf",
"state": {
"type": "file-explorer",
"state": {
"sortOrder": "alphabetical"
}
}
}
],
"currentTab": 2
]
}
],
"direction": "horizontal",
"width": 200
"width": 300
},
"right": {
"id": "4540e984d4c131f5",
"id": "70ae06261ef3fc74",
"type": "split",
"children": [
{
"id": "b1ae273364c01df7",
"id": "07672eb406645795",
"type": "tabs",
"children": [
{
"id": "3c5c1738be747670",
"id": "827e4aecb1891b44",
"type": "leaf",
"state": {
"type": "backlink",
@@ -116,7 +115,7 @@
}
},
{
"id": "a0e89b3fceee7653",
"id": "583573a993e5af09",
"type": "leaf",
"state": {
"type": "outgoing-link",
@@ -128,7 +127,7 @@
}
},
{
"id": "a8d05e2876a81d16",
"id": "fbf143571343fb20",
"type": "leaf",
"state": {
"type": "tag",
@@ -139,7 +138,7 @@
}
},
{
"id": "858dd4c3359fda1d",
"id": "457947aad2c5e591",
"type": "leaf",
"state": {
"type": "outline",
@@ -149,7 +148,15 @@
}
},
{
"id": "4965238a34ee95eb",
"id": "631d374a04a792db",
"type": "leaf",
"state": {
"type": "advanced-tables-toolbar",
"state": {}
}
},
{
"id": "b3aa4e2b20626da4",
"type": "leaf",
"state": {
"type": "calendar",
@@ -157,7 +164,7 @@
}
},
{
"id": "838787be957ae435",
"id": "c3c39c68e6060e3e",
"type": "leaf",
"state": {
"type": "juggl_nodes",
@@ -165,14 +172,15 @@
}
},
{
"id": "974f4434812d0416",
"id": "ccdfcdb588345764",
"type": "leaf",
"state": {
"type": "juggl_style",
"state": {}
}
}
]
],
"currentTab": 4
}
],
"direction": "horizontal",
@@ -188,48 +196,53 @@
"templates:Insert template": false,
"command-palette:Open command palette": false,
"table-editor-obsidian:Advanced Tables Toolbar": false,
"obsidian-advanced-slides:Show Slide Preview": false,
"juggl:Juggl global graph": false,
"obsidian-livesync:Replicate": false,
"obsidian-livesync:Show log": false
"obsidian-livesync:Show log": false,
"obsidian-advanced-slides:Show Slide Preview": false,
"juggl:Juggl global graph": false
}
},
"active": "8d74a64b5bdd799c",
"active": "e2194e3299515374",
"lastOpenFiles": [
"Informationssicherheit/Ueb2/2023-04-17_14-16.png",
"Informationssicherheit/Ueb2/Ueb2.pdf",
"Informationssicherheit/Ueb2/02-ueb_uebungsblatt.pdf",
"Informationssicherheit/Ueb2/Ueb2.md",
"README.md",
"Informationssicherheit/VL/01-orga-motivation-handout.pdf",
"2023-04-16.md",
"Informationssicherheit/Ueb2/test2.md",
"FH/Informationssicherheit/Ueb2/test.md",
"FH/Informationssicherheit/Ueb2/Untitled.md",
"FH/Informationssicherheit/Ueb1/20230330_19h30m31s_grim.png",
"FH/Informationssicherheit/Ueb1/20230330_19h34m13s_grim.png",
"FH/Algorithmen und Datenstrukturen/UEB01.md",
"FH/Algorithmen und Datenstrukturen",
"FH/Informationssicherheit/Ueb1/20230331_07h21m13s_grim.png",
"FH/Informationssicherheit/Ueb1/20230331_10h28m24s_grim.png",
"FH/Informationssicherheit/Ueb1/20230331_10h28m43s_grim.png",
"FH/Informationssicherheit/Ueb1/20230331_14h12m43s_grim.png",
"FH/Informationssicherheit/Ueb1/20230331_16h17m48s_grim.png",
"FH/Informationssicherheit/Ueb1/20230331_16h21m51s_grim.png",
"FH/Informationssicherheit/Ueb1/20230331_16h22m19s_grim.png",
"FH/Informationssicherheit/Ueb1/20230331_16h29m50s_grim.png",
"FH/Informationssicherheit/Ueb1/Ueb01.pdf",
"FH/CCN/VL01.md",
"FH/CCN",
"FH/Informationssicherheit/Ueb1/Ueb01.md",
"FH/Informationssicherheit/VL/01-orga-motivation-handout.pdf",
"FH/Informationssicherheit/VL/02-terminologie-handout.pdf",
"FH/Informationssicherheit/Ueb1/01-ueb_uebungsblatt.pdf",
"FH/Informationssicherheit/Ueb2/02-ueb_uebungsblatt.pdf",
"FH/Informationssicherheit/VL/03-fm-orga-handout.pdf",
"FH/2023-04-16.md",
"Informationssicherheit/Ueb2/2023-04-17_15-55.png",
"Informationssicherheit/Ueb2/2023-04-17_14-16.png",
"Untitled 1.md",
"Untitled.md",
"Excalidraw/Drawing 2023-04-17 08.21.36.excalidraw.md",
"Excalidraw/Drawing 2023-04-17 08.21.00.excalidraw.md",
"Excalidraw",
"FH/Informationssicherheit/Ueb2/Ueb2.md",
"README.md",
"FH/Informationssicherheit/Ueb2/test.md",
"Informationssicherheit/Ueb2/test2.md",
"Informationssicherheit/Ueb2/Untitled.md",
"Informationssicherheit/Ueb1/01-ueb_uebungsblatt.pdf",
"Informationssicherheit/Ueb1/20230330_19h30m31s_grim.png",
"Informationssicherheit/Ueb1/20230330_19h34m13s_grim.png",
"Informationssicherheit/Ueb1/20230331_07h21m13s_grim.png",
"Informationssicherheit/Ueb1/20230331_10h28m24s_grim.png",
"Informationssicherheit/Ueb1/20230331_10h28m43s_grim.png",
"Informationssicherheit/Ueb1/20230331_14h12m43s_grim.png",
"Informationssicherheit/Ueb1/20230331_16h17m48s_grim.png",
"Informationssicherheit/Ueb1/20230331_16h21m51s_grim.png",
"Informationssicherheit/Ueb1/Ueb01.md",
"Informationssicherheit/Ueb1/Ueb01.pdf",
"Informationssicherheit/VL/01-orga-motivation-handout.pdf",
"Informationssicherheit/VL/02-terminologie-handout.pdf",
"Informationssicherheit/VL/03-fm-orga-handout.pdf",
"CCN/VL01.md",
"Algorithmen und Datenstrukturen/UEB01.md",
"CCN/VL01.md"
"2023-04-16.md",
"Informationssicherheit/Ueb1",
"Informationssicherheit/VL",
"CCN",
"FH/2023-04-16.md",
"FH/Informationssicherheit/Ueb1/Ueb01.md",
"FH/Informationssicherheit/Ueb01.md",
"FH/Algorithmen und Datenstrukturen/UEB01.md",
"FH/CCN/VL01.md"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

View File

@@ -149,9 +149,8 @@ sql_injection_advance_5()
```
Output:
```
t
th
thi
@@ -175,6 +174,7 @@ thisisasecretfortomo
thisisasecretfortomon
thisisasecretfortomonl
thisisasecretfortomonly
```
### 3
1. What is the difference between a prepared statement and a statement?
@@ -257,13 +257,42 @@ def sql_injection_mitigation_10():
sql_injection_mitigation_10()
```
Output:
```
webgoat-prd IP: 104.130.219.202
```
## Aufgaben
### a
Bei einer SQL-Injection nutzt der Angreifer Sicherheitslücken in Webanwendungen aus, die keine ausreichenden Eingabevalidierungen oder Escaping-Mechanismen implementieren. Dadurch kann der Angreifer die Kontrolle über die SQL-Anfragen erlangen, die von der Anwendung an die Datenbank gesendet werden. Das kann zu unerlaubtem Zugriff auf vertrauliche Daten, Manipulation von Daten, Verlust von Datenintegrität oder sogar Systemkompromittierung führen.
### b
Um SQL-Injection-Angriffe zu verhindern, können Entwickler verschiedene Maßnahmen ergreifen.
1. Prepared Statements (Parameterisierte Abfragen):
- vorab kompiliert und die Platzhalter werden anschließend durch die tatsächlichen Werte ersetzt.
2. Stored Procedures:
- im Datenbank-System gespeicherte, vorkompilierte Anweisungen, die bei Bedarf aufgerufen werden können.
3. Escaping von Benutzereingaben:
- Benutzereingaben werden alle potenziell gefährlichen Zeichen in der Eingabe neutralisiert, bevor sie in die SQL-Abfrage eingefügt werden.
4. Eingabevalidierung und Whitelisting:
- Eingabevalidierung hilft dabei, unerwünschte Eingaben zu erkennen und abzulehnen.
- Whitelisting hingegen erlaubt nur bestimmte Eingaben und blockiert alles andere.
5. Verwendung von Least Privilege-Prinzip:
- Benutzerkonten und Anwendungen erhalten nur die minimalen Berechtigungen , die sie für die Durchführung ihrer Aufgaben benötigen.
6. Fehlerbehandlung und -logging:
- Durch eine sorgfältige Fehlerbehandlung und -logging können Entwickler verdächtige Aktivitäten erkennen und darauf reagieren.
### c
Das Prinzip des Least Privilege (Minimalberechtigung) ist ein grundlegendes Sicherheitskonzept, bei dem Benutzer und Anwendungen nur die minimal notwendigen Berechtigungen erhalten, um ihre Aufgaben auszuführen. Die Idee dahinter ist, die potenzielle Angriffsfläche zu verringern und die Auswirkungen eines Sicherheitsvorfalls zu begrenzen. Im Kontext von SQL-Injections bedeutet dies, dass die Berechtigungen für Datenbankzugriffe eingeschränkt werden, um die Wahrscheinlichkeit eines erfolgreichen Angriffs zu reduzieren.
Einige der Least Privilege-Maßnahmen, die im Zusammenhang mit SQL-Injections angewendet werden können, sind:
- Eingeschränkte Benutzerkonten
- Trennung von Aufgaben
- Objektberechtigungen
- Einsatz von Views
- Einschränkung der SQL-Anweisungen
# 2.3
@@ -275,3 +304,134 @@ alert(document.cookie)
- JSESSIONID=WAoLCuHqYVKBPATEYnT23tGJaJPRHR9xRbDfnd2C
### 2
```
<script>alert()</script>
```
### 3
goatApp.js
```js
/*
* This JavaScript is used to load a Backbone router which is defined by GoatRouter.js
*/
define(['jquery',
'underscore',
'backbone',
'polyglot',
'goatApp/view/GoatRouter',
'goatApp/support/goatAsyncErrorHandler'],
function ($,
_,
Backbone,
Polyglot,
Router,
asyncErrorHandler) {
'use strict'
return {
initApp: function () {
var locale = localStorage.getItem('locale') || 'en';
$.getJSON('service/labels.mvc', function(data) {
window.polyglot = new Polyglot({phrases: data});//i18n polyglot labels
asyncErrorHandler.init();
console.log('about to create app router');//default js
var goatRouter = new Router();//backbone router
});//jquery
}
};
});
```
- goatApp/view/GoatRouter sieht wichtig aus
goatApp/view/GoatRouter
```js
...
var GoatAppRouter = Backbone.Router.extend({
routes: {
'welcome': 'welcomeRoute',
'lesson/:name': 'lessonRoute',
'lesson/:name/:pageNum': 'lessonPageRoute',
'test/:param': 'testRoute',
'reportCard': 'reportCard'
},
...
```
- test/:param
- start.mvc#test/
### 4
```
http://127.0.0.1:8080/WebGoat/start.mvc#test/<script>webgoat.customjs.phoneHome();
```
![[2023-04-17_15-55.png]]
- sogt dafür, dass die Seite in der Console den output von webgoat.customjs.phoneHome(); ausführt
- Output:
```
phone home said {"lessonCompleted":true,"feedback":"Congratulations. You have successfully completed the assignment.","output":"phoneHome Response is -1941012131","assignment":"DOMCrossSiteScripting","attemptWasMade":true}
```
- Antwort: -1941012131
### 5
1. Are trusted websites immune to XSS attacks?
- Solution 4: No because the browser trusts the website if it is acknowledged trusted, then the browser does not know that the script is malicious.
2. When do XSS attacks occur?
- Solution 3: The data is included in dynamic content that is sent to a web user without being validated for malicious content.
3. What are Stored XSS attacks?
- Solution 1: The script is permanently stored on the server and the victim gets the malicious script when requesting information from the server.
4. What are Reflected XSS attacks?
- Solution 2: They reflect the injected script off the web server. That occurs when input sent to the web server is part of the request.
5. Is JavaScript the only way to perform XSS attacks?
- Solution 4: No there are many other ways. Like HTML, Flash or any other type of code that the browser executes.
## Aufgaben
### a
- XSS eine Art von Sicherheitslücke in Webanwendungen, die es einem Angreifer ermöglicht, bösartige Skripte in die Inhalte einer anderen Benutzerseite einzufügen. XSS-Angriffe treten auf, wenn eine Webanwendung Benutzereingaben ohne ausreichende Validierung in HTML-Code einfügt.
### b
- XSS Schwachstellen sind vorallem in Formularen zu finden wenn die Eingaben auf der Website angezeigt werden z.B. Kommentarfunktion oder Blogs
### c
- Zugriff auf vertrauliche Informationen: Ein Angreifer kann durch XSS-Angriffe auf vertrauliche Informationen wie Benutzerdaten, Passwörter, Kreditkarteninformationen, Cookies und Sitzungstoken zugreifen.
- Identitätsdiebstahl: Durch XSS-Angriffe kann ein Angreifer die Kontrolle über die Sitzung eines Benutzers erlangen und sich als dieser ausgeben, um sensible Aktionen wie Geldtransfers oder den Zugriff auf geschützte Ressourcen durchzuführen.
- Verbreitung von Malware: Ein Angreifer kann schädlichen Code in eine Website einschleusen, der dann von ahnungslosen Benutzern heruntergeladen und ausgeführt wird, was zur Installation von Malware auf ihren Geräten führen kann.
### d
- Reflected XSS:
Reflektiertes XSS tritt auf, wenn der Angreifer eine URL oder einen Link erstellt, der schädlichen JavaScript-Code enthält. Wenn ein Benutzer diesen Link anklickt, wird der Schadcode in die Benutzeranfrage an die Webanwendung eingefügt und anschließend vom Server zurück an den Browser gesendet, wo er ausgeführt wird. Da dieser Angriff direkt auf den Benutzer abzielt, ist er häufig in Phishing-E-Mails oder Social-Engineering-Angriffen zu finden.
- Persistiend XSS:
Im Gegensatz zum reflcted XSS wird der schädliche Code in diesem Fall auf dem Webserver gespeichert, z. B. in einem Kommentarbereich, einer Datenbank oder einem Forum. Wenn andere Benutzer die infizierte Seite besuchen, wird der schädliche Code in deren Browser ausgeführt. Persistierendes XSS ist gefährlicher als reflektiertes XSS, da es mehrere Benutzer gleichzeitig betreffen kann und nicht auf Social-Engineering-Angriffe angewiesen ist.
- DOM-based XSS:
DOM-based XSS findet auf der Client-Seite (im Browser) statt und resultiert aus einer unsicheren Manipulation des Document Object Model (DOM). Der Angreifer injiziert schädlichen Code in die Seite, der dann im Browser des Benutzers ausgeführt wird, ohne dass die Webanwendung selbst betroffen ist. Das bedeutet, dass der Angriff nicht vom Webserver, sondern von der Client-Seite kommt, was die Erkennung und Vorbeugung schwieriger macht.
### e
- Input-Validierung:
- Überprüfen von Datenformaten: Sicherstellen dass Daten wie E-Mail-Adressen, Telefonnummern und Postleitzahlen im richtigen Format vorliegen.
- Vermeiden von Sonderzeichen: Filtern spezieller Zeichen wie Anführungszeichen und Schrägstriche.
- Verwendung von Whitelists: Whitelists von erwarteten Werten, um sicherzustellen, dass nur gültige Daten in der Anwendung akzeptiert werden.
- Output-Encoding:
- HTML-Entitäten: HTML-Entitäten werden verwendet, um Zeichen wie "<" und ">" in ihrer kodierten Form "<" und ">" anzuzeigen, anstatt sie als Teil des HTML-Codes zu interpretieren.
- JavaScript-Encoding: JavaScript-Encoding wird verwendet, um JavaScript-Code zu codieren, um Skript-Injektions-Angriffe zu verhindern. Zum Beispiel kann "alert('Hello World!')" als "alert(\u0027Hello World!\u0027)" codiert werden.
- URL-Encoding: URL-Encoding wird verwendet, um spezielle Zeichen in URLs zu kodieren, um sie sicher anzuzeigen. Zum Beispiel wird ein Leerzeichen in "%20" kodiert.
- CSS-Encoding: CSS-Encoding wird verwendet, um CSS-Code zu codieren, um Skript-Injektions-Angriffe zu verhindern. Zum Beispiel kann "background-image: url('image.jpg')" als "background-image: url(\27 image.jpg\27 )" codiert werden.
- Sicherheits-Header: Es können Sicherheits-Header wie Content-Security-Policy (CSP) oder X-XSS-Protection verwendet werden, um sicherzustellen, dass nur vertrauenswürdige Ressourcen auf einer Seite geladen werden und um das Risiko von XSS-Angriffen zu verringern.
- Content-Security-Policy:
- HTTP-Only-Cookies:
- Bibliotheken etc. Aktualisieren:

Binary file not shown.