
Outil de fuzzing, d'énumération et d'exploitation d'inclusion de fichier et de traversée de répertoire.
Menu 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 peut être utilisé pour découvrir et exploiter automatiquement les vulnérabilités d'inclusion de fichiers locale/à distance et de traversée de répertoires. Si une vulnérabilité LFI est trouvée, l'option --lfishell peut être utilisée pour l'exploiter. Pour l'instant, 3 types différents de shells LFI sont pris en charge :
simple: Ce type de shell permet à l'utilisateur de lire facilement des fichiers sans avoir à saisir l'URL à chaque fois. Il fournit uniquement la sortie du fichier et pas l'intégralité du code source HTML de la page, ce qui le rend très pratique.expect: Ce type de shell est un shell semi-interactif qui permet à l'utilisateur d'exécuter des commandes via le wrapper expect:// de PHP.input: Ce type de shell est un shell semi-interactif qui permet également à l'utilisateur d'exécuter des commandes via le flux php://input de PHP.Jusqu'à présent, seules deux commandes intégrées au shell LFI existent :
clear etexit.*).D'après la sortie ci-dessous, il semble que le paramètre directory soit probablement vulnérable à une traversée de répertoires, car chaque requête avec ../ comme charge utile produit un hachage sha-256 différent. De plus, la longueur du contenu diffère pour chaque requête :
./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
De même, le paramètre language semble vulnérable à LFI, car en utilisant ../etc/passwd etc. comme charge utile, chaque requête colorée en vert produit un hachage différent, une longueur de contenu différente de l'originale, et le mot-clé spécifié est trouvé dans la réponse :
./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
Exploitation de la LFI ci-dessus à l'aide du shell simple :
--params doit également être spécifiée.--payload doit être laissée à sa valeur par défaut (None).--file est utilisée pour tester plusieurs URLs, seule la requête GET est prise en charge.--file et --cookie sont toutes deux définies, comme un seul cookie peut être spécifié à la fois, les URLs doivent se référer au même domaine ou être accessibles sans cookie (cela sera corrigé dans une future mise à jour).input n'est pas compatible avec le verbe POST.Remarque : Pour installer les prérequis :
pip install -r requirements.txt --upgrade --user
💡 FDsploit est également préinstallé avec la distribution BlackArch Linux.
--file fonctionne également avec les paramètres POST et les cookies, en utilisant probablement un fichier json etc. comme entrée.--lfishell, par exemple history etc.Les retours et contributions sont les bienvenus. Si vous trouvez un bug ou avez une demande de fonctionnalité, n'hésitez pas à ouvrir une issue, et dès que je l'aurai examinée, j'essaierai de la corriger !