Zaid: Laten we het nu hebben over
hoe we XSS kwetsbaarheden kunnen voorkomen.
De manier waarop deze kwetsbaarheden
voorkomen is dat wanneer een gebruiker
iets invoert in een
tekstvak of in een parameter,
die invoer wordt weergegeven in de HTML.
Het wordt dus behandeld alsof het deel uitmaakt van
de pagina, en daarom, als er JavaScript in staat,
wordt de code uitgevoerd.
Dus, om deze exploit te voorkomen, is het het
beste om te proberen het gebruik
van niet-vertrouwde invoer te minimaliseren.
Dus telkens wanneer een gebruiker iets
invoert of wanneer iets wordt ingevoerd via parameters,
probeer dat te minimaliseren.
Zorg er ook voor dat
u altijd alles wat wordt weergegeven
of gebruikt in de HTML-pagina escapet,
want XSS kan niet alleen worden geïnjecteerd
in plaatsen waar dingen worden weergegeven
op de pagina, maar het kan ook worden geïnjecteerd
in parameters van bepaalde elementen van de HTML-pagina.
Dus wat ik bedoel met escapen is
het omzetten van elk van deze tekens
naar wat ze zouden voorstellen in HTML.
Je kunt dat doen met scripts, en
je kunt dat doen met je eigen script.
Ik zal je laten zien hoe dit gebeurt.
Nu ben ik hier op mijn kwetsbare webpagina
die we gebruikten,
en ik ga naar de opslagpagina.
En je ziet duidelijk
dat elke keer als we daarop klikken, de XSS loopt.
Dus laten we dit element inspecteren.
In dit element injecteren we onze waarschuwing.
En als we met de rechtermuisknop
klikken en naar inspect element gaan,
toont het ons de HTML van deze pagina, of de HTML van dit specifieke
element hier, gemarkeerd.
Dus ik ga dit groter maken.
En als we hier kijken, zie je dat we de
naam hebben, en dat
is Zaid.
En dan de andere invoer, dat is het bericht, het is een script,
en het script wat het
script doet is een waarschuwingsoefening.
Dus het is precies wat we erin hebben gestopt toen we het
commentaar deden.
Dus elke keer dat we op deze pagina
waren, wordt dit stukje code uitgevoerd Dus wat we moeten
doen is ervoor zorgen
dat elke keer dat een gebruiker iets invoert en dat
iets wordt weergegeven op een pagina, of dat iets
ergens in de elementen wordt gebruikt.
Dus zelfs de ID hier of zelfs de
H, de ID is gewoon, bijvoorbeeld, is een parameter van
de div, het wordt niet weergegeven,
je ziet deze ID nooit, maar dit kan worden
geïnjecteerd, kan ook worden geïnjecteerd.
Dus hackers kunnen proberen dingen te injecteren in
de parameters, ze kunnen proberen dingen te injecteren
in de afbeeldingsattributen, bijvoorbeeld,
ze kunnen een afbeelding
doen en dingen injecteren in de bron
of in de URL.
Dus dit is slechts een voorbeeld.
En elke keer dat gebruikersinvoer ergens op de pagina wordt
gebruikt, dus zelfs als je het niet ziet,
als je het gewoonlijk niet ziet, moet je ervoor zorgen
dat je die invoer ontsnapt en ervoor zorgen dat het
geen code bevat, en als het code
bevat dat het wordt omgezet
in een equivalent dat de code niet zal uitvoeren.
Dus het wordt omgezet naar zijn HTTP equivalent,
zodat je eigenlijk, zodra je dit ontsnapt,
dit in het bericht ziet.
U ziet het bericht dus als scriptwaarschuwing
XSS, maar het zal nooit worden uitgevoerd.
Dit script zal nooit daadwerkelijk worden uitgevoerd
op de persoon die het uitvoert.
Om nu als gebruiker te voorkomen
dat je gebruikt wordt in een XSS aanval.
Nu zal de URL die naar u toe komt er waarschijnlijk
uitzien als een URL van een vertrouwde website, bijvoorbeeld, laten
we aannemen dat u in een bedrijf
werkt en er was een XSS in uw bedrijf, en u
logt in op uw bedrijf en de code wordt
op u uitgevoerd, dan is er niet veel
wat u zelf kunt doen.
Maar je moet voorzichtig zijn.
Dus met BeEF zagen we om de kwetsbaarheden
uit te buiten, bijvoorbeeld een valse
update.
Dus als u een bericht krijgt dat er altijd een update
is, zorg er dan voor
dat u daadwerkelijk naar de website gaat die die
toepassing aanbiedt.
Dus als Firefox zegt
dat er een update is, ga dan naar de website van Firefox en kijk of
er daadwerkelijk een update is.
En als het er is, download het dan van die website,
niet van de melding die je kreeg.
Zorg er ook voor dat u het downloadt van een HTTPS-website.
En als je het eenmaal hebt gedownload, kun je het inspecteren en
controleren op dezelfde manier als
we eerder hebben gezien om er zeker van te
zijn dat er geen achterdeurtjes of iets anders in zit.
U kunt ook de md5sum controleren, om er zeker van
te zijn dat het bestand niet is gemanipuleerd
tijdens het downloaden.
Hetzelfde toen we de nep Facebook login
deden wanneer je bij BeEF bent, dus wat je kunt doen is wanneer
je te horen krijgt dat
je bent uitgelogd, opnieuw inloggen, opnieuw,
dat negeren.
Ga naar facebook. com, zorg ervoor dat het via HTTPS
gaat, en log dan in op Facebook.
Probeer dus altijd voorzichtig te zijn met meldingen die je vertellen
dat je dingen moet doen.
Wees altijd op je hoede
en vertrouw ze nooit.