Skip to content

1. Path Traversal

Was ist Path traversal

Auch bekannt als Directory Traversal. Mit der kann man im schlimmsten Fall Zugriff zu Files außerhalb des Webseiten-Bereichs erreichen und sogar das System oder die komplette App verändern.

  • Application code and data.
  • Credentials for back-end systems.
  • Sensitive operating system files.

z. B. eine Seite lädt ein Bild wie folgt.

<img src="/loadImage?filename=218.png">

dann könnte man das wie folgt nutzen https://insecure-website.com/loadImage?filename=../../../etc/passwd https://insecure-website.com/loadImage?filename=..\..\..\windows\win.ini

Manchmal muss man die Pfade auch etwas anpassen. z. B. ....//....//....//etc/passwd etc/passwd

Bypassing Sanatization

Encoding Mit URL Encoding kann man den gewünschten Pfad auch wieder encoden um solche sanitizations zu bypassen ..%252f..%252f..%252fetc/passwd oder auch als ganzes %25%32%65%25%32%65%25%32%66%25%32%65%25%32%65%25%32%66%25%32%65%25%32%65%25%32fetc/passwd oder auch komplett inkl. etc/passwd encoden.

Expected Base Pfad Manchmal kann es auch sein, dass ein Mechanismus verlangt, dass es mit einem bestimmten Base Pfad startet. Das sieht dann wie folgt aus. z. B. /var/www/images dann setzen wir sowas wie. filename=/var/www/images/../../../etc/passwd

[!note] Tool-Tipp Hackvertor Extension verwenden zum encoden

path_traversal1.PNG{ width="700" } Expected File Extension Ebenfalls gilt das für Dateiendungen. Es kann z. B. sein, dass nur .png verwendet werden darf. Dann baut man sowas wie: filename=../../../etc/passwd%00.png - %00: bedeutet Nullbyte also \0 und bei vielen Low-Level C API's gilt das als Ende der Zeichenkette.