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

View File

@@ -1,15 +1,15 @@
{ {
"main": { "main": {
"id": "985a28639027cb68", "id": "1345ce316d57bf13",
"type": "split", "type": "split",
"children": [ "children": [
{ {
"id": "70d3e404042bb7e1", "id": "08ad9b53ade42d31",
"type": "tabs", "type": "tabs",
"dimension": 58.991008991009, "dimension": 62.59025270758123,
"children": [ "children": [
{ {
"id": "8d74a64b5bdd799c", "id": "e2194e3299515374",
"type": "leaf", "type": "leaf",
"state": { "state": {
"type": "markdown", "type": "markdown",
@@ -23,12 +23,12 @@
] ]
}, },
{ {
"id": "09960489beb8807f", "id": "47553fa673bb1eb6",
"type": "tabs", "type": "tabs",
"dimension": 41.008991008991, "dimension": 37.40974729241877,
"children": [ "children": [
{ {
"id": "9acdf2a1e42ed9ec", "id": "20668ba691cd80b3",
"type": "leaf", "type": "leaf",
"state": { "state": {
"type": "pdf", "type": "pdf",
@@ -43,15 +43,25 @@
"direction": "vertical" "direction": "vertical"
}, },
"left": { "left": {
"id": "cddcefee340fb8a5", "id": "e5fbdfc2085faa4b",
"type": "split", "type": "split",
"children": [ "children": [
{ {
"id": "94d495814220bf82", "id": "e02674fc64edf0b5",
"type": "tabs", "type": "tabs",
"children": [ "children": [
{ {
"id": "70ca5d990fce7a86", "id": "b8336cb3c3d06be9",
"type": "leaf",
"state": {
"type": "file-explorer",
"state": {
"sortOrder": "alphabetical"
}
}
},
{
"id": "14611a26bf336471",
"type": "leaf", "type": "leaf",
"state": { "state": {
"type": "search", "type": "search",
@@ -66,40 +76,29 @@
} }
}, },
{ {
"id": "d5e695bcc8cab13d", "id": "344d14435301d3da",
"type": "leaf", "type": "leaf",
"state": { "state": {
"type": "starred", "type": "starred",
"state": {} "state": {}
} }
},
{
"id": "e66cc33cf17c042a",
"type": "leaf",
"state": {
"type": "file-explorer",
"state": {
"sortOrder": "alphabetical"
}
}
} }
], ]
"currentTab": 2
} }
], ],
"direction": "horizontal", "direction": "horizontal",
"width": 200 "width": 300
}, },
"right": { "right": {
"id": "4540e984d4c131f5", "id": "70ae06261ef3fc74",
"type": "split", "type": "split",
"children": [ "children": [
{ {
"id": "b1ae273364c01df7", "id": "07672eb406645795",
"type": "tabs", "type": "tabs",
"children": [ "children": [
{ {
"id": "3c5c1738be747670", "id": "827e4aecb1891b44",
"type": "leaf", "type": "leaf",
"state": { "state": {
"type": "backlink", "type": "backlink",
@@ -116,7 +115,7 @@
} }
}, },
{ {
"id": "a0e89b3fceee7653", "id": "583573a993e5af09",
"type": "leaf", "type": "leaf",
"state": { "state": {
"type": "outgoing-link", "type": "outgoing-link",
@@ -128,7 +127,7 @@
} }
}, },
{ {
"id": "a8d05e2876a81d16", "id": "fbf143571343fb20",
"type": "leaf", "type": "leaf",
"state": { "state": {
"type": "tag", "type": "tag",
@@ -139,7 +138,7 @@
} }
}, },
{ {
"id": "858dd4c3359fda1d", "id": "457947aad2c5e591",
"type": "leaf", "type": "leaf",
"state": { "state": {
"type": "outline", "type": "outline",
@@ -149,7 +148,15 @@
} }
}, },
{ {
"id": "4965238a34ee95eb", "id": "631d374a04a792db",
"type": "leaf",
"state": {
"type": "advanced-tables-toolbar",
"state": {}
}
},
{
"id": "b3aa4e2b20626da4",
"type": "leaf", "type": "leaf",
"state": { "state": {
"type": "calendar", "type": "calendar",
@@ -157,7 +164,7 @@
} }
}, },
{ {
"id": "838787be957ae435", "id": "c3c39c68e6060e3e",
"type": "leaf", "type": "leaf",
"state": { "state": {
"type": "juggl_nodes", "type": "juggl_nodes",
@@ -165,14 +172,15 @@
} }
}, },
{ {
"id": "974f4434812d0416", "id": "ccdfcdb588345764",
"type": "leaf", "type": "leaf",
"state": { "state": {
"type": "juggl_style", "type": "juggl_style",
"state": {} "state": {}
} }
} }
] ],
"currentTab": 4
} }
], ],
"direction": "horizontal", "direction": "horizontal",
@@ -188,48 +196,53 @@
"templates:Insert template": false, "templates:Insert template": false,
"command-palette:Open command palette": false, "command-palette:Open command palette": false,
"table-editor-obsidian:Advanced Tables Toolbar": 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: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": [ "lastOpenFiles": [
"Informationssicherheit/Ueb2/2023-04-17_14-16.png", "Informationssicherheit/Ueb2/Ueb2.pdf",
"Informationssicherheit/Ueb2/02-ueb_uebungsblatt.pdf", "Informationssicherheit/Ueb2/02-ueb_uebungsblatt.pdf",
"Informationssicherheit/Ueb2/Ueb2.md", "Informationssicherheit/Ueb2/Ueb2.md",
"README.md", "Informationssicherheit/Ueb2/2023-04-17_15-55.png",
"Informationssicherheit/VL/01-orga-motivation-handout.pdf", "Informationssicherheit/Ueb2/2023-04-17_14-16.png",
"2023-04-16.md", "Untitled 1.md",
"Informationssicherheit/Ueb2/test2.md", "Untitled.md",
"FH/Informationssicherheit/Ueb2/test.md", "Excalidraw/Drawing 2023-04-17 08.21.36.excalidraw.md",
"FH/Informationssicherheit/Ueb2/Untitled.md", "Excalidraw/Drawing 2023-04-17 08.21.00.excalidraw.md",
"FH/Informationssicherheit/Ueb1/20230330_19h30m31s_grim.png", "Excalidraw",
"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",
"FH/Informationssicherheit/Ueb2/Ueb2.md", "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.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", "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: Output:
```
t t
th th
thi thi
@@ -175,6 +174,7 @@ thisisasecretfortomo
thisisasecretfortomon thisisasecretfortomon
thisisasecretfortomonl thisisasecretfortomonl
thisisasecretfortomonly thisisasecretfortomonly
```
### 3 ### 3
1. What is the difference between a prepared statement and a statement? 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() sql_injection_mitigation_10()
``` ```
Output: Output:
``` ```
webgoat-prd IP: 104.130.219.202 webgoat-prd IP: 104.130.219.202
``` ```
## Aufgaben ## Aufgaben
### a ### 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 # 2.3
@@ -275,3 +304,134 @@ alert(document.cookie)
- JSESSIONID=WAoLCuHqYVKBPATEYnT23tGJaJPRHR9xRbDfnd2C - JSESSIONID=WAoLCuHqYVKBPATEYnT23tGJaJPRHR9xRbDfnd2C
### 2 ### 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.