
Herramienta de fuzzing, enumeración y explotación de Inclusión de archivos y Recorrido de directorios.
Menú de FDsploit:
$ 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 se puede usar para descubrir y explotar automáticamente vulnerabilidades de inclusión de archivos local/remota y directory traversal. En caso de que se encuentre una vulnerabilidad LFI, se puede usar la opción --lfishell para explotarla. Por ahora, se admiten 3 tipos diferentes de shells LFI:
simple: Este tipo de shell permite al usuario leer archivos fácilmente sin tener que escribir la URL cada vez. Además, solo proporciona la salida del archivo y no todo el código fuente HTML de la página, lo que lo hace muy útil.expect: Este tipo de shell es un shell semi-interactivo que permite al usuario ejecutar comandos a través del wrapper expect:// de PHP.input: Este tipo de shell es un shell semi-interactivo que también permite al usuario ejecutar comandos a través del flujo php://input de PHP.Hasta ahora, solo hay dos comandos integrados del shell LFI:
clear yexit.*).Del resultado a continuación, parece que el parámetro directory es probablemente vulnerable a directory traversal, ya que cada solicitud con ../ como payload produce un hash sha-256 diferente. Además, el content-length es diferente para cada solicitud:
./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
Nuevamente, el parámetro language parece vulnerable a LFI ya que usando ../etc/passwd etc... como payload, cada solicitud marcada en verde produce un hash diferente, un content-length diferente del inicial, y la palabra clave especificada se encuentra en la respuesta:
./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
Explotando el LFI anterior usando el shell simple:
POST, también se debe especificar la opción --params.--payload debe dejarse en su valor predeterminado (None).--file para probar múltiples URLs, solo se admite la solicitud GET.--file y --cookie, dado que solo se puede especificar una cookie a la vez, las URLs deben referirse al mismo dominio o ser accesibles sin cookie (esto se solucionará en una actualización futura).input no es compatible con el verbo POST.Nota: Para instalar los requisitos:
pip install -r requirements.txt --upgrade --user
💡 FDsploit también viene preinstalado con BlackArch Linux distribution.
--file funcione también con parámetros POST y cookies, probablemente usando un archivo json etc... como entrada.--lfishell, por ejemplo, history etc...Los comentarios y las contribuciones son bienvenidos. Si encuentra algún error o tiene una solicitud de función, no dude en abrir un issue, y tan pronto como lo revise, ¡intentaré solucionarlo!
Esta herramienta es solo para fines de prueba y académicos, y solo se puede usar donde se haya dado un consentimiento estricto. ¡No la use para fines ilegales! Es responsabilidad del usuario final cumplir con todas las leyes locales, estatales y federales aplicables. Los desarrolladores no asumen ninguna responsabilidad y no se hacen responsables de ningún uso indebido o daño causado por esta herramienta y el software en general.
Este proyecto está licenciado bajo la Licencia GPLv3 - consulte el archivo LICENSE para obtener más detalles.