Zaid: Dus laten we praten over hoe je
dit soort kwetsbaarheden ontdekt.
Zeer vergelijkbaar met SQL-injecties, de manier
om dit te doen is je bladert door je doel
en probeert elk tekstvak
of elke url te injecteren die hier op
lijkt.
Dus wanneer je een url ziet met parameters, probeer
deze parameters te injecteren of
probeer te injecteren in tekstvakken.
Laten we eens kijken naar een gereflecteerd XSS-voorbeeld.
Dit zijn dus de niet-permanente, niet opgeslagen kwetsbaarheden waarbij
je de code daadwerkelijk naar het doelwit moet sturen, en zodra
het doelwit de code uitvoert, wordt
deze uitgevoerd op hun machine.
Dus laten we eens kijken op onze DVWA website.
En ik ga gewoon inloggen.
En dan hebben we een voorbeeld van een gereflecteerde XSS.
Dus zoals je nu kunt zien, kun je hier je naam zetten
voor dit tekstvak, en er zal
gewoon 'Hallo' staan.
Dit is natuurlijk maar een voorbeeld, maar
het idee is dat je in tekstvakken kunt injecteren.
Ook als je naar de url hier kijkt, zul je zien
dat het een get is,
dus je kunt ook in de url injecteren.
Dus laat me een Leafpad beginnen.
En laten we proberen hier XSS code op te injecteren
en kijken of de code wordt uitgevoerd, of
JavaScript code, sorry.
Dus wat ik ga gebruiken is een heel eenvoudig script, dus we
gebruiken het script en een slice script tag nu is er een heleboel
manieren om dit soort kwetsbaarheden te ontdekken
en een heleboel manieren om
filters te omzeilen, maar voor nu kijken we
gewoon naar het basisgeval waar we een normaal
script kunnen injecteren.
En ik ga 'alert' zeggen, wat gewoon een functie is om
een waarschuwing te geven aan een tekstvak,
en ik ga zeggen...
"XSS".
Dus ik ga op 'submit' klikken en
we zullen zien of deze code wordt uitgevoerd.
En zoals je nu kunt zien, is mijn code uitgevoerd.
Dus in plaats van 'Hallo Zaid' zei het hier 'Hallo'
en mijn code werd uitgevoerd en het produceerde deze 'XSS'.
Dus we kunnen hetzelfde doen hier, als je kijkt op de url, het
deed het eigenlijk al voor ons.
Maar als we naar de url hier kijken, wordt
hij daar gewoon wat groter.
We kunnen zien dat de naam
duidelijk allemaal html escape-tekens
zijn.
En als je nu deze url naar iemand stuurt, wie die
url ook bekijkt, de code wordt uitgevoerd op zijn
machine en er staat 'XSS'.
Dus laat me je hier
zien, je kunt dit ook in de url injecteren,
ik wil je gewoon het hele idee daarvan zaaien.
Dus we hebben script, slice script XSS.
En als ik op Enter druk, wordt de code uitgevoerd.
Dus zoals ik al zei, kunnen we dit kopiëren
en naar een bepaalde persoon sturen en
zodra zij die code uitvoeren, wordt deze code op hun machine
uitgevoerd.