Threats and Attacks

Wat is XSS (Cross-Site Scripting)?

Cross-Site Scripting, of XSS, is een beveiligingsfout in websites die aanvallers in staat stelt schadelijke scripts toe te voegen aan webpagina's. Meestal zijn deze scripts geschreven in JavaScript.

Wat is XSS (Cross-Site Scripting)?

Cross-Site Scripting, of XSS, is een beveiligingsfout in websites die aanvallers in staat stelt schadelijke scripts aan webpagina’s toe te voegen. Meestal worden deze scripts geschreven in JavaScript.

Als iemand een pagina bezoekt die door XSS is aangetast, voert hun browser het script van de aanvaller uit. Dit kan resulteren in gestolen cookies, gekaapte sessies of acties die zonder toestemming van de gebruiker worden uitgevoerd.

XSS, net als SQL-injectie, wordt regelmatig vermeld in de OWASP Top 10 als een van de meest voorkomende kwetsbaarheden van webapplicaties.

plexicus-xss-aanval-illustratie

Hoe werkt XSS?

XSS richt zich vaak op webapplicaties die gebruikersinvoer niet correct controleren en opschonen.

Bijvoorbeeld, als een commentaarveld rauwe HTML of JavaScript toestaat zonder enige filtering, kan een aanvaller code zoals deze toevoegen:

<script>alert('Hacked!');</script>

Wanneer slachtoffers de pagina bekijken, wordt de kwaadaardige code in hun browser uitgevoerd.

Waarom XSS belangrijk is in cybersecurity

XSS kan leiden tot een grotere inbreuk:

  • Accountovername (sessiecookies stelen om gebruikers te imiteren)
  • Diefstal van gegevens (het vastleggen van formulierinvoer zoals wachtwoorden of creditcards)
  • Phishing-aanvallen (het injecteren van valse inlogformulieren)
  • Malwarelevering (gebruikers omleiden naar kwaadaardige websites)

Soorten XSS

  1. DOM-gebaseerde XSS
  2. De aanval vindt volledig plaats in de browser door manipulatie van het Document Object Model (DOM) zonder betrokkenheid van de server.
  3. Opgeslagen XSS
  4. Kwaadaardig script wordt permanent opgeslagen op de server, zoals in de database of profielpagina.
  5. Gereflecteerde XSS
  6. Script wordt gereflecteerd van een webserver (bijv. in URL of foutmelding), het script wordt uitgevoerd wanneer het slachtoffer op een door aanvallers gemaakte link klikt.

Hoe XSS te voorkomen

  • Invoer sanering & uitvoer codering: altijd gebruikersinvoer schoonmaken voordat het wordt verwerkt, gebruikersinvoer transformeren naar een veilig formaat
  • Gebruik Content Security Policy (CSP): beperkt welke scripts in de browser kunnen worden uitgevoerd.
  • Vermijd eval() en inline JavaScript: om injectierisico’s te verminderen.
  • Beveiligingstesten (DAST/IAST): voer beveiligingstesten uit om kwetsbaarheden vroegtijdig te detecteren

Voorbeeld in de echte wereld - Samy worm (MySpace, 2005)

Wat er gebeurde: Samy Kamkar publiceerde een MySpace-profiel dat een opgeslagen XSS-payload bevatte. Wanneer andere gebruikers het profiel bekeken, werd de payload in hun browsers uitgevoerd, het (a) voegde Samy toe als vriend, (b) voegde de zin “Samy is mijn held” toe aan hun profielen, en (c) repliceerde zichzelf naar de profielpagina’s van die gebruikers.

Impact: De worm verspreidde zichzelf naar ~1 miljoen gebruikers binnen ~20 uur, waardoor MySpace tijdelijk offline werd gehaald.

Waarom het werkte: MySpace stond niet-ontsnapte HTML/attributen toe in profielvelden, waardoor opgeslagen scriptuitvoering in de browsers van bezoekers mogelijk was.

Lessen / fix: Juiste uitvoer codering, invoer sanering, verwijdering van HTML in profielvelden, en snelle patching. Samy kreeg later juridische gevolgen, en MySpace implementeerde filters.

Gerelateerde termen

Ready to validate what matters?

Ready to validate what matters?

Plexicus is Proof-Driven AppSec: validated findings, contextual understanding, and reviewed remediation — anchored in evidence, scoped with you.

Qualification

Check whether AI Swarm Pentest fits your environment.

Share the minimum context. We will review the scope and tell you the next commercial step.

Before submitting — verify you fit

Teams with fewer than 50 developers: start a 14-day Trial instead of booking a demo. Start a 14-day Trial →

0 / 280

No commitment. If you don't fit, we'll tell you.

SAMPLE HANDOVER · ILLUSTRATIVE

Sample evidence handover

A trimmed view of what your team receives at the end of an AI Swarm Pentest engagement. Real engagements include full technical evidence, executive narrative, and a remediation plan.

VALIDATED FINDING Evidence attached

Server-Side Request Forgery in webhooks/receiver

demo-project/sample-app · src/webhooks/receiver.py:42

SeverityHigh CVSS 3.18.6 Priority79 Confirmedvia replay

Untrusted caller-supplied URLs reach an internal egress without an allowlist. Replayed in a sandbox against a fresh authorised target — the same control was validated to fail twice.

REVIEWER-READY REMEDIATION Merge-ready PR

Validate the target URL against an allowlist of permitted hostnames. Reject private/internal IP ranges. Enforce HTTPS only.

plexicus/remediation/webhooks-ssrf 3 changed · 0 new files
42resp = requests.get(target_url)
42+if not is_allowed_host(target_url):
43+  raise WebhookRejected(target_url)
44+resp = requests.get(target_url, timeout=5)
Every engagement hands over:
  • Executive briefing
  • Validated findings list
  • Merge-ready PRs
  • Compliance mapping (NIS2 · DORA · CRA)