[TryHackMe] Advent of Cyber 2, Day 4 - Walkthrough -

本稿では、[TryHackMe](https://tryhackme.com/)にて提供されている「[Advent of Cyber 2](https://tryhackme.com/room/adventofcyber2)」ルームに関する攻略方法（Walkthrough）について検証します。
「Advent of Cyber 2」は「free room」（無料）で提供されています。購読を必要とせずに仮想マシンを「展開（Deploy）」することができます。

>『Advent of Cyber 2』のWalkthroughインデックスを「[[TryHackMe] Advent of Cyber 2に参加してみた](https://qiita.com/v_avenger/items/ac9092374e5bf16a2dd0)」にて公開しました。

# [Day 4] Web Exploitation: Santa's watching
## ストーリー
![Day 04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/294810/f7452a37-c342-e660-a4ad-d509a51fcf25.png)

> 私たちの悪意のある、卑劣で、下劣で、残酷で、侮蔑的で、邪悪なハッカーがエルフのフォーラムを改ざんし、ログインページを完全に削除してしまいました! しかし、APIにはまだアクセスできるかもしれません。システム管理者は、APIがYYYYMMDDという形式の日付を使用してログを作成していることを教えてくれました。

## チャレンジ


## Day 4 - #1.
>Deploy your AttackBox (the blue "Start AttackBox" button) and the tasks machine (green button on this task) if you haven't already. Once both have deployed, open FireFox on the AttackBox and copy/paste the machines IP into the browser search bar.

まずは、`Elf's forums`にアクセスします。`[Deploy]`ボタンをクリックします。
ブラウザにて割り振られたIPアドレスにアクセスします。改ざんされた`Elf's forums`画面が表示されます。
![f0rums.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/294810/1d111b52-9f02-bdd4-d0a4-35cda3b3cfc0.png)

## Day 4 - #2.
>Given the URL "http://shibes.xyz/api.php", what would the entire wfuzz command look like to query the "breed" parameter using the wordlist "big.txt" (assume that "big.txt" is in your current directory)

`wfuzz`構文の練習問題です。ここで学んだ内容を`Day 4 - #4.`にて使用します。

## Day 4 - #3.
>Use GoBuster (against the target you deployed -- not the shibes.xyz domain) to find the API directory. What file is there?

Kali Linuxに収録されている`「/usr/share/wordlists/dirb/big.txt`」辞書ファイルを使用して、「**Fuzzing（ファジング）**」を行います。
ここでは、`gobuster`ツールを使用します。

```
kali@kali:~/OffsecVM$ gobuster dir -u http://10.10.195.94 -w /usr/share/dirb/wordlists/big.txt -x php,txt,html
```

「/usr/share/wordlists/dirb/big.txt`」辞書ファイルの場合、11%ぐらいで「`/api`」ディレクトリの存在が明らかとなりました。
![gobuster.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/294810/ed763336-ba63-9f5a-1ef5-96987bb55636.png)

ブラウザで「`/api`」ディレクトリにアクセスしてみます。
![api.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/294810/e54683a0-ff73-24a7-3ea8-4c4621be6a66.png)

解答となるファイルをみつけることができました。

## Day 4 - #4.
>Fuzz the date parameter on the file you found in the API directory. What is the flag displayed in the correct post?

「`Day 4 - #2`」の解答を参考に`wfuzz`コマンドの構文について検討します。

```
kali@kali:~/OffsecVM$ wfuzz -c -z file,/home/kali/OffsecVM/wordlist -u http://10.10.173.43/api/site-log.php?date=FUZZ
```

![wfuzz.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/294810/fd9c56b7-b0b4-01f8-44ff-9fcad7705d3a.png)

```
Total time: 2.408097
Processed Requests: 63
Filtered Requests: 0
Requests/sec.: 26.16173
```

いくつか不要な応答が含まれています。`wfuzz`コマンドのオプションを使って除外する方法を検討してみます。ここでは`--hh 0`オプションを利用します。

```
kali@kali:~/OffsecVM$ wfuzz -c -z file,/home/kali/OffsecVM/wordlist -u http://10.10.173.43/api/site-log.php?date=FUZZ --hh 0
```

![wfuzz_02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/294810/0541bc63-c312-0463-3ffd-7dad0e04ca05.png)

他の日付（`Filtered Requests: 62`）は`Chars: 0 Ch`です。
これに対し、`20201125`のときだけ`Chars: 13 Ch`であることが判明しました。

ブラウザで判明した日付にアクセスしてみます。

```
http://MACHINE_IP/api/site-log.php?date=20201125
```

![Flag.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/294810/2985c367-6508-1df1-aedc-3e0506f8fbe5.png)

これにてフラグの取得に成功しました。

4日目のミッションが終了です。

# 参考になるTryHackMeのルーム
- [ZTH: Web 2](https://tryhackme.com/room/zthweb2)
- [CC: Pen Testing](https://tryhackme.com/room/ccpentesting)

# Walkthrough
- Constant Vigilance, [Santa's watching - web exploitation](https://www.wclaymoody.com/blog/tryhackme-adventofcyber-2020/#day-4), フラグ取得までを自動化したPythonコード
- BRYAN WENDT, [TryHackMe – Advent of Cyber 2 – Day 4 – Walkthrough](https://bryanwendt.wordpress.com/2020/12/04/tryhackme-advent-of-cyber-2-day-4-walkthrough/)
- NEERANJAN MURUGAN, [Advent of Cyber 2 ~ Try Hack Me](https://neeranjan.com/advent-of-cyber-2-try-hack-me/)