
ファイルインクルージョン&ディレクトリトラバーサルのファジング、列挙、エクスプロイトツール。
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/RFI)やディレクトリトラバーサルの脆弱性を自動的に発見し、エクスプロイトするために使用できます。LFI脆弱性が見つかった場合、--lfishell オプションを使用してエクスプロイトできます。現在、3 種類のLFIシェルがサポートされています:
simple: このタイプのシェルは、毎回URLを入力しなくても簡単にファイルを読み取ることができます。また、読み取ったファイルの出力のみを表示し、ページ全体のHTMLソースコードは表示しないため、非常に便利です。expect: このタイプのシェルはセミインタラクティブシェルで、PHPの expect:// ラッパーを介してコマンドを実行できます。input: このタイプのシェルはセミインタラクティブシェルで、PHPの php://input ストリームを介してコマンドを実行できます。現時点では、LFIシェルに組み込まれているコマンドは2つだけです:
clear とexit。*)を使用してテストする特定のパラメータを指定できます。以下の出力から、directory パラメータはおそらくディレクトリトラバーサル脆弱性に対して脆弱であると思われます。なぜなら、../ をペイロードとして使用するすべてのリクエストが異なる sha-256 ハッシュを生成するからです。また、各リクエストのContent-Lengthも異なります:
./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 などをペイロードとして使用すると、緑色で色付けされた各リクエストは初期状態とは異なるハッシュ、異なるContent-Lengthを生成し、指定されたキーワードがレスポンス内に見つかります:
./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 シェルを使用してエクスプロイト:
POST 動詞を使用する場合は、--params オプションも指定する必要があります。--payload オプションをデフォルト値(None)のままにしておく必要があります。--file オプションを使用する場合、GETリクエストのみがサポートされます。--file と --cookie の 両方 が設定されている場合、一度に指定できるクッキーは1つだけなので、URLは同じドメインを参照しているか、クッキーなしでアクセス可能である必要があります(これは将来のアップデートで修正される予定です)。input シェルは POST 動詞と互換性がありません。注意: 要件をインストールするには:
pip install -r requirements.txt --upgrade --user
💡 FDsploit は BlackArch Linux distribution にもプリインストールされています。
--file をPOSTパラメータやクッキーでも機能させる(おそらく json ファイルなどを入力として使用)。--lfishell にさらに組み込みコマンドを追加(例: history など)。フィードバックや貢献は歓迎します。バグを見つけた場合や機能リクエストがある場合は、遠慮なくIssueを開いてください。確認次第、修正に努めます!
このツールはテストおよび学術目的のみに使用され、厳格な同意が得られた場合にのみ使用できます。違法な目的で使用しないでください!適用されるすべての地域、州、連邦法に従うのはエンドユーザーの責任です。開発者は一切の責任を負わず、このツールおよびソフトウェア全体の誤用や損害について責任を負いません。
このプロジェクトはGPLv3ライセンスの下でライセンスされています - 詳細は LICENSE ファイルを参照してください。