
ローカルファイルインクルージョン(LFI)脆弱性を検出・悪用するPython3ツール。クローリング、パストラバーサルやフィルターバイパスのペイロード、ログポイズニングやPHPラッパーを利用した自動リバースシェルを備えています。
• このツールは教育目的のみに使用されます。
• 開発者および協力者は、このツールの違法な使用について一切の責任を負いません。
LFITester は、サーバーがローカルファイルインクルージョン(LFI)攻撃に対して脆弱かどうかをテストする Python3 ツールです。
Linux/Unix システムで動作しますが、Windows でも動作可能です。このプログラムを使用するには:
• システムに Python3 がインストールされている必要があります。または https://www.python.org/downloads/ からダウンロードできます。
• また pip も必要です。インストールされていない場合は、Linux では sudo apt install python3-pip を実行してください。
• プログラムをダウンロードするか、リポジトリをシステムにクローンします git clone https://github.com/kostas-pa/LFITester.git
• LFITester フォルダに移動します
• まず sudo chmod +x setup.sh コマンドを実行します
• 次に sudo ./setup.sh を実行すると、必要なパッケージが自動的にインストールされます
• その後は、lfitester をコマンドとして実行するだけです。
• 攻撃を開始する前に --update フラグを実行することを推奨します
$python3 LFITester.py
└──╼ $./LFITester.py
_ ______ _____ _______ _
| | | ____|_ _|__ __| | |
| | | |__ | | | | ___ ___| |_ ___ _ __
| | | __| | | | |/ _ \/ __| __/ _ \ '__|
| |____| | _| |_ | | __/\__ \ || __/ |
|______|_| |_____| |_|\___||___/\__\___|_|
**********************************************************************************************************************************************************************************************
LFITester
Automated LFI Testing
**********************************************************************************************************************************************************************************************
usage: LFITester.py [-h] [-u URL] [-L URL_File] [-c] [-v] [-o [OUTFILE]] [--creds [user:pass]] [-p] [--autopwn IP]
[-m Payload] [-f] [--update] [--batch-ans BATCH] [-s] [--poc-file POC] [-H HEADERS] [-C COOKIES]
Payload Modes:
0: Simple bash TCP
1: Alternative bash TCP
2: Simple sh UDP
3: Alternative sh TCP
4: Perl TCP
5: Alternative Perl TCP
6: Python TCP
7: Alternative python TCP
8: Alternative 2 python TCP
9: Alternative 3 python TCP
10: Alternative (No Spaces) python TCP
11: Alternative (No Spaces) 2 python TCP
12: Alternative (No Spaces) 3 python TCP
13: Alternative (No Spaces) Shortened python TCP
14: Alternative (No Spaces) Shortened 2 python TCP
15: Alternative (No Spaces) Shortened 3 python TCP
16: Alternative (No Spaces) Shortened Further python TCP
17: Alternative (No Spaces) Shortened Further 2 python TCP
18: Alternative (No Spaces) Shortened Further 3 python TCP
19: Python3 TCP
20: Alternative python3 TCP
21: Alternative 2 python3 TCP
22: Alternative 3 python3 TCP
23: Alternative (No Spaces) python3 TCP
24: Alternative (No Spaces) 2 python3 TCP
25: Alternative (No Spaces) 3 python3 TCP
26: Alternative (No Spaces) Shortened python3 TCP
27: Alternative (No Spaces) Shortened 2 python3 TCP
28: Alternative (No Spaces) Shortened 3 python3 TCP
29: Alternative (No Spaces) Shortened Further python3 TCP
30: Alternative (No Spaces) Shortened Further 2 python3 TCP
31: Alternative (No Spaces) Shortened Further 3 python3 TCP
32: Php exec
33: Php shell_exec
34: Php over sh
35: Php system
36: Php passthru
37: Php popen
38: Php proc_open
39: Ruby
40: Ruby Alternative
41: Go
42: Netcat sh
43: Netcat bash
44: Netcat alternative bash
45: Netcat openBSD
46: Ncat
47: Ncat UDP
options:
-h, --help show this help message and exit
-u URL, --url URL The url to test. The URL usually is http://[URL]?[something]=
-L URL_File, --list-url URL_File
Input a list of URLs from an external file. The URLs format usually is http://[URL]?[something]=
-c, --crawl use the crawler to test all the endpoints
-v, --verbose Increase output verbosity
-o [OUTFILE], --output [OUTFILE]
The file to save the results
--creds [user:pass] The credentials to login
-p, --enable-proxies Enable proxy redirection. Default proxies are free and you can change them. If you don't want the
default proxies you can supply your own and this option will be overridden! Note that the proxies
will be picked at random for each request
--autopwn IP If the webapp is vulnerable to LFI then it will attempt to exploit it and give back a shell. This
option requires your IP in order to connect with the revshell
-m Payload, --mode Payload
Select the payload that suits best. Try different ones if the exploit doesn't work.
-f, --force Treat endpoint as alive even if it returns 404
--update Update LFITester
--batch-ans BATCH Answer all yes/no
-s, --stealth Enable stealth mode
--poc-file POC Your custom poc file.
-H HEADERS, --headers HEADERS
Add extra headers
-C COOKIES, --cookies COOKIES
Add extra cookies
-r PACKET_FILE, --packet-file PACKET_FILE
Import headers/cookies/body from a packet file (HTTP or Burp format)
Proxies in the list must be in the following format: protocol://{proxyip}
username:password (newline). If you dont have a authenticated
proxy then skip the username:password entry and go for a new line
Examples:
LFITester.py -u "http://URL?smt=" = test one specific endpoint
LFITester.py -L test.txt = test a list of endpoints from file
LFITester.py -c -u "http://URL" = crawl and test all endpoints of that URL
LFITester.py -c -L test.txt = crawl and test all endpoints for every URL in the file
LFITester.py --creds abc:abc -u "http://URL?smt=" = test one specific endpoint which requires a login
Developers: Konstantinos Papanagnou (https://github.com/Konstantinos-Papanagnou)
Konstantinos Pantazis (https://github.com/kostas-pa)
Timothy Stowe (https://github.com/timothy90990)
• 基本的な使い方: python3 LFITester.py -u "http://myvulnerabledomain/vulnerable/application?test_param="
• http://url?param1=1¶m2=2 のようにクエリパラメータが2つある URL で問題が発生する場合は、"" で囲んで "http://url?param1=1¶m2=2" のように実行してみてください。
• ユーザーとして実行していて Git に関するエラーが発生する場合は、sudo lfitester [flags] のように sudo コマンドで lfitester を実行してみてください。
• ライブラリで問題が発生する場合は、--update フラグを実行してから sudo pip3 install -r requirements.txt を実行してみてください。requirements が変更されている可能性があります。
• 出力ファイルで色が表示されず、代わりにカラーコードが表示される場合は、[your text editor] display ANSI color codes を検索してください。
• setup.sh で Python パッケージをインストールできない場合は、sudo pip3 install [package] コマンドで手動でインストールしてみてください。
• 処理が止まってしまった場合は、とりあえず Enter キーを押してください :)
• 奇妙なエンコーディング結果が得られる場合は、Burp ファイルを含め、パラメータから値を削除してみてください。
• このプロジェクトが気に入ったら、スターを付けていただけると嬉しいです。
• このプロジェクトを手伝ってくださったすべてのコントリビューターと、提供してくださった知識に感謝します。