Wiki

XSS

Cross-Site Scripting (XSS) is een beveiligingskwetsbaarheid die aanvallers in staat stelt om kwaadaardige scripts in websites in te voegen. Deze scripts worden vervolgens uitgevoerd in de browsers van de gebruikers die de getroffen website bezoeken, wat kan leiden tot een breed scala aan schadelijke acties, zoals het stelen van sessiecookies, het uitlekken van persoonlijke informatie of het uitvoeren van ongewilde acties namens de gebruiker. XSS is een van de meest voorkomende beveiligingsproblemen op het web en kan ernstige gevolgen hebben voor zowel gebruikers als de eigenaren van de getroffen websites.

XSS-aanvallen kunnen verschillende vormen aannemen, afhankelijk van hoe en waar de kwaadaardige scripts worden ingevoegd. Er zijn drie belangrijkste soorten XSS-aanvallen:

Stored XSS (Persistente XSS):
Bij een stored XSS-aanval wordt het kwaadaardige script permanent opgeslagen op de server van de website, bijvoorbeeld in een database of op een bestandssysteem. Dit betekent dat elke keer wanneer een andere gebruiker de geïnfecteerde pagina bezoekt, het kwaadaardige script wordt uitgevoerd. Dit type XSS-aanval is bijzonder gevaarlijk omdat het effect persistent is en een breed publiek kan treffen, zelfs als ze niet interactie hebben met de aanvaller.

Voorbeeld: Een aanvaller plaatst een kwaadaardig script in een formulier dat door de website wordt opgeslagen in een database. Wanneer andere gebruikers de pagina bezoeken, wordt het script uitgevoerd in hun browsers, waarmee de aanvaller bijvoorbeeld sessie-informatie kan stelen.

Reflected XSS (Vervlogen XSS):
Reflected XSS komt voor wanneer het kwaadaardige script wordt ingevoerd in de URL of een formulier en onmiddellijk wordt uitgevoerd in de browser van de gebruiker zonder dat het op de server wordt opgeslagen. Dit soort aanvallen wordt vaak uitgevoerd door een aanvaller die een schadelijke link naar een slachtoffer stuurt, bijvoorbeeld via e-mail, chat of sociale media.

Voorbeeld: Een aanvaller stuurt een gebruiker een link met een kwaadaardige script die wordt uitgevoerd zodra de gebruiker op de link klikt. Het script kan bijvoorbeeld worden gebruikt om inloggegevens te stelen of de gebruiker om te leiden naar een malafide website.

DOM-based XSS:
DOM-based XSS komt voor wanneer de kwetsbaarheid zich aan de clientzijde bevindt, vaak als gevolg van onveilige interactie van JavaScript met het Document Object Model (DOM). Het kwaadaardige script wordt in dit geval uitgevoerd door een wijziging in de DOM van de pagina, vaak via invoervelden die onveilig worden verwerkt door client-side JavaScript.

Voorbeeld: Een webpagina bevat JavaScript-code die gegevens uit de URL of het formulier haalt en direct in de HTML plaatst zonder deze correct te valideren of te ontsmetten. Een aanvaller kan dan kwaadaardige code toevoegen aan de URL, die de DOM van de pagina aanpast en schadelijke acties uitvoert in de browser van de gebruiker.