Warning: Undefined variable $pageid in /var/www/inc/functions/page-stroke-element.php on line 70

Warning: Undefined variable $pageid in /var/www/inc/functions/page-stroke-element.php on line 70
Wat is path traversal? Uitleg en voorbeelden

Wij gebruiken cookies om het gebruik van de website te analyseren en het gebruiksgemak te verbeteren. Lees meer over cookies.

Terug naar overzicht

Path traversal

Wat is path traversal?

Path traversal is een kwetsbaarheid in webapplicaties waarmee een aanvaller toegang krijgt tot bestanden en mappen buiten de bedoelde map op een server. Door een pad te manipuleren met tekens zoals ../ kan een kwaadwillende "omhoog" navigeren in de mappenstructuur. Zo leest iemand mogelijk gevoelige bestanden, zoals wachtwoordbestanden of configuratiegegevens, die normaal afgeschermd zijn. Deze aanval wordt ook wel directory traversal genoemd.

Hoe werkt path traversal?

Een webapplicatie gebruikt vaak invoer van gebruikers om bestanden op te halen, bijvoorbeeld een afbeelding of een document. Als de applicatie deze invoer niet goed controleert, kan een aanvaller het pad aanpassen. In plaats van een normaal bestand vraagt hij dan een bestand op dat buiten de toegestane map ligt.

Stel dat een website een afbeelding ophaalt via ?file=vakantie.jpg. Een aanvaller vervangt dit door ?file=../../../../etc/passwd. Als de server dit accepteert, krijgt de aanvaller toegang tot een systeembestand met gevoelige informatie. Hetzelfde principe werkt op Windows-servers, waar aanvallers vaak zoeken naar configuratie- of inlogbestanden.

Voorbeelden van path traversal

Path traversal kan op verschillende manieren voorkomen. Hieronder zie je een paar veelvoorkomende situaties waarin deze kwetsbaarheid opduikt:

  • Een download-functie die bestanden ophaalt op basis van een bestandsnaam uit de URL.

  • Een template- of taalselectie die een bestand inlaadt zonder controle op het opgegeven pad.

  • Een upload- of viewerfunctie die gebruikersinvoer direct koppelt aan een locatie op de server.

In al deze gevallen ontstaat het risico doordat de applicatie de invoer vertrouwt zonder te controleren of het pad wel binnen de toegestane map blijft.

"Vertrouw nooit blind op invoer die naar een bestand verwijst. Werk met een vaste lijst van toegestane bestanden of gebruik unieke ID's in plaats van echte bestandsnamen. Zo maak je path traversal in één klap veel lastiger."

Arno - Directeur van Cyber Cloud

Waarvoor wordt path traversal misbruikt?

Aanvallers gebruiken path traversal vooral om gevoelige informatie te bemachtigen. Denk aan configuratiebestanden met wachtwoorden, broncode van je applicatie of gegevens van klanten. In sommige gevallen leidt de aanval tot verdere stappen, bijvoorbeeld het uitvoeren van kwaadaardige code. De schade loopt daardoor snel op, van datalekken tot volledige overname van een systeem.

Hoe bescherm je je tegen path traversal?

De belangrijkste maatregel is het strikt controleren van alle invoer. Sta alleen bekende bestandsnamen toe en filter gevaarlijke tekens zoals ../ weg. Werk waar mogelijk met een vaste map en koppel bestanden aan interne ID's in plaats van echte paden. Ook helpt het om de rechten op je server zo beperkt mogelijk in te stellen, zodat een applicatie nooit meer kan lezen dan nodig is.

Wil je zeker weten dat jouw webapplicatie geen path traversal-kwetsbaarheden bevat? Een pentest brengt zwakke plekken aan het licht voordat een aanvaller dat doet. Ook een gerichte black box pentest geeft je inzicht in hoe je applicatie van buitenaf oogt.

Samenvatting

Path traversal is een kwetsbaarheid waarmee aanvallers via gemanipuleerde paden toegang krijgen tot bestanden buiten de bedoelde map. Het risico ontstaat vooral bij applicaties die gebruikersinvoer niet goed controleren. Met invoervalidatie, beperkte rechten en veilige bestandsverwijzingen houd je deze aanval buiten de deur.

Wil je jouw webapplicatie laten testen op path traversal en andere kwetsbaarheden? De specialisten van Cyber Cloud staan voor je klaar!


Onze klanten
ctp-eu
dhl
schipper
oaz
vtm
mxmendix
OHH_logo_rgb_white
hbmmachines
montalogo_wit