Cross site scripting technieken

Uitleg en voorbeeld


Cross-site scripting (XSS) is een techniek die gebruik maakt van een veelvoorkomend beveiligingslek: kwetsbaarheid voor code-injection. Een aanvaller probeert code te 'injecteren' tijdens een gebruikerssessie met een website teneinde gevoelige informatie van de betreffende gebruiker te bemachtigen.
Er zijn meerdere vormen van cross site scripting. Onderstaand is een voorbeeld, waarbij gebruiker X aanlogt op een voor cross site scripting kwetsbare site Y en moet inloggen met username en wachtwoord. De site bevat verder identiteitsgevoelige gegevens van de gebruiker X.
De aanvaller stuurt een email met een URL naar site Y. Het emailtje lijkt afkomstig van site X (spoofing). In deze URL plaatst de aanvaller echter een stukje script, bijvoorbeeld: www.Y.nl/default.asp?naam= script codeXYZ() /script. Bij de script tags zijn bewust de "<" en ">" weggelaten, omdat uw browser datgeven wat tussen de script tags staat anders niet zou weergeven.
Op deze manier wordt op site X in het naamveld een stukje script (codeXYZ() ) geïnjecteerd. Deze script bevat bijvoorbeeld een doorlink naar de site van de aanvaller. Gebruiker X is nietsvermoedend omdat de site van de aanvaller dezelfde loginpagina heeft als de vertrouwde site Y. Op deze manier heeft de aanvaller het userid en wachtwoord van gebruiker X.

In bovenstaand plaatje is het genoemde XSS voorbeeld grafisch weergegeven:
1) Aanvaller stuurt email met URL, met in naamveld een script
2) Gebruiker X klikt op link en gaat naar site Y
3) Site Y is gevoelig voor XSS aanvallen. De input wordt niet gecontroleerd, en de script wordt uitgevoerd, de gebruiker X wordt doorgelinkt naar de aanvaller.
4) De aanvaller heeft een interactieve sessie met gebruiker X en verkrijgt zo UID en wachtwoord.
Er zijn vele varianten op bovenstaande. Het hoeft niet zo te zijn dat er wordt doorgelinkt naar de aanvaller. Ook kan het zijn dat het stukje script wat de aanvaller per email heeft verzonden door site Y weer wordt terugezonden naar gebruiker X. Vanaf dat moment kan het stukje script bijvoorbeeld cookies van de sessie tussen gebruiker X en site Y opvragen en naar de site van de Aanvaller sturen.

Remedie


WEBapplicaties zouden natuurlijk ingevoerde code van de "gebruiker" moeten valideren en zeker geen scripts in een invoerveld accepteren. Helaas zijn er nog steeds webapplicaties die geen of weinig controle uitvoeren.
Verder dient een gebruiker niet zomaar op links in een email te klikken, ook al lijkt het emailjte van de vertrouwde site afkomstig. Surf rechtstreeks naar een site waarop moet worden ingelogd.

Column Header

Secure Connection BV
EditRegion4





Column Footer
Column Header
Zoeken


WWW assutools.com

Google

EditRegion5
Column Footer