TryHackMe(THM):Inclusion
目次
Task 1 Deploy
Virtual Boxを実行して接続する
Task 2 Root It
ファイルインクルージョン(File Inclusion)は、Webサーバ上のデータに対し入力検証の不備を突いて不正なスクリプトを挿入する攻撃手法である。
RFIは不正なスクリプトをサーバに挿入し、ターゲットのページを介して悪意のあるコードを実行させることで、サーバ側はもちろん、クライアント側にも被害を及ぼすことになる。
LFIは、ターゲットのサーバ上のファイルに対して、不正なスクリプトを挿入しデフォルトファイル名の変更、データのアップロード/ダウンロードの実行等やりたい放題ができる。
user flag
まずnmapを実行
# nmap -sV -sC <$IP>
22番(SSH)と80番(HTTP)の2ポートが解放されているので、まずブラウザでアクセスしてみる。
普通のWebサイトに見える。3つのボタンがありそれぞれ押下すると、それぞれの説明が書いてある。
時間のある人は内容を確認してください。(自分も!)
ほかに隠れたディレクトリがあるか確認するためgobusterコマンドを実行してみる。
# gobuster dir -u http://<$IP> -w /usr/share/dirb/wordlists/common.txt
特に真新しいディレクトリは見つからず...
今回は質問文にもあるように真ん中の説明を読むと、RFIは不正なスクリプトをサーバに挿入し、ターゲットのページを介して悪意のあるコードを実行させることで、サーバ側はもちろん、クライアント側にも被害を及ぼすことになる。
先人の知恵を拝借する。
3つのボタンを押下すると、URLの「name」の後ろが変更されている。 http://<$IP>/article?name=<ボタン名>
wfuzzを使ってみる。
$ wfuzz -c -z file,/usr/share/wfuzz/wordlist/vulns/dirTraversal-nix.txt --filter "c=200" http://<$IP>/article?name=FUZZ
オプションとして
-z : リクエストの中でFUZZを置き換えるものを指定
../../../etc/passwdをURLに追加してみる../../../etc/passwdをURLに追加してみる http://<$IP>/article?name=../../../etc/passwd
「/etc/passwd」ファイルが表示された。
ファイルが表示された [Ctrl]+[U]を押下すると、ページのコードが表示されて見やすくなった。
ブラウザの下のほうにユーザ名とパスワードが表示されている。
別のターミナルを起動してsshで接続してみる。
先ほど表示されたユーザ名とパスワードを入力すると入ることができた。
現在のディレクトリのリストを表示させるとuser.txtファイルがあるので確認。
root flag
先ほど、ブラウザのURLでディレクトリトラバーサルが使たので、同じように「/root/root.txt」を入力してみると、なんと表示された。
完了!