【TryHackMe】CTF collection Vol.2：Walkthrough

# 概要

TryHackMe「CTF collection Vol.2」のWalkthroughです。

https://tryhackme.com/r/room/ctfcollectionvol2

# Task2

## **Q1**.*Easter 1*

**Hint**.*Check the robots*

ポートスキャンを実行します。

```
$ nmap -Pn -sC -sV -A -T4 -p- 10.10.253.90 -oN nmap_result
PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 5.9p1 Debian 5ubuntu1.10 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
|   1024 1b:c2:b6:2d:fb:32:cc:11:68:61:ab:31:5b:45:5c:f4 (DSA)
|   2048 8d:88:65:9d:31:ff:b4:62:f9:28:f2:7d:42:07:89:58 (RSA)
|_  256 40:2e:b0:ed:2a:5a:9d:83:6a:6e:59:31:db:09:4c:cb (ECDSA)
80/tcp open  http    Apache httpd 2.2.22 ((Ubuntu))
| http-robots.txt: 1 disallowed entry 
|_/VlNCcElFSWdTQ0JKSUVZZ1dTQm5JR1VnYVNCQ0lGUWdTU0JFSUVrZ1p5QldJR2tnUWlCNklFa2dSaUJuSUdjZ1RTQjVJRUlnVHlCSklFY2dkeUJuSUZjZ1V5QkJJSG9nU1NCRklHOGdaeUJpSUVNZ1FpQnJJRWtnUlNCWklHY2dUeUJUSUVJZ2NDQkpJRVlnYXlCbklGY2dReUJDSUU4Z1NTQkhJSGNnUFElM0QlM0Q=
|_http-server-header: Apache/2.2.22 (Ubuntu)
|_http-title: 360 No Scope!
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
```

ポートの稼働状況が分かりました。

|ポート|サービス|バージョン|
|:-:|:-:|:-:|
|22|ssh|OpenSSH 5.9p1|
|80|http|Apache httpd 2.2.22|

`80`番ポートでWebサイトにアクセスできました。

![home page.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/28aca590-c80f-6c7e-337b-9bab0f2e5d08.png)

`/robots.txt`へアクセスすると文字列を得られました。

```/robots.txt
User-agent: * (I don't think this is entirely true, DesKel just wanna to play himself)
Disallow: /VlNCcElFSWdTQ0JKSUVZZ1dTQm5JR1VnYVNCQ0lGUWdTU0JFSUVrZ1p5QldJR2tnUWlCNklFa2dSaUJuSUdjZ1RTQjVJRUlnVHlCSklFY2dkeUJuSUZjZ1V5QkJJSG9nU1NCRklHOGdaeUJpSUVNZ1FpQnJJRWtnUlNCWklHY2dUeUJUSUVJZ2NDQkpJRVlnYXlCbklGY2dReUJDSUU4Z1NTQkhJSGNnUFElM0QlM0Q=


45 61 73 74 65 72 20 31 3a 20 54 48 4d 7b 34 75 37 30 62 30 37 5f 72 30 6c 6c 5f 30 75 37 7d
```

`45 61 73 74 65 72 20 ~`を16進数デコードするとフラグを得られました。

```
$ echo "45 61 73 74 65 72 20 31 3a 20 54 48 4d 7b 34 75 37 30 62 30 37 5f 72 30 6c 6c 5f 30 75 37 7d" | xxd -r -p
Easter 1: THM{4u70b07_r0ll_0u7}
```

**A**.**THM{4u70b07_r0ll_0u7}**

## **Q2**.*Easter 2*

**Hint**.*Decode the base64 multiple times. Don't forget there are something being encoded.*

`Disallow`の文字列を複数回`base64`でデコードすると`DesKel_secret_base`という文字列を得られました。

![base64 multiple decode.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/1c0ccff6-1424-9829-4945-320adcdc140e.png)

`/DesKel_secret_base`にアクセスし、ソースコードを見るとフラグを得られました。

![east2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/b847ba6b-eaf8-52e3-bc31-70988847c73a.png)

**A**.**THM{f4ll3n_b453}**

## **Q3**.*Easter 3*

**Hint**.*Directory buster with common.txt might help.*

ディレクトリの列挙を行います。

```
$ dirsearch -u http://10.10.253.90
[13:09:33] 200 -   38KB - /button
[13:10:02] 301 -  246B  - /login  ->  http://10.10.253.90/login/            
[13:10:02] 200 -  480B  - /login/                                           
[13:10:02] 200 -  480B  - /login/index
[13:10:24] 200 -  341B  - /robots.txt
[13:10:33] 200 -  248KB - /static
```

`/login`のパスを見つけたのでアクセスし、ソースコードを見るとフラグを得られました。

![east3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/45d0b26d-c887-d686-9d76-2b940379c484.png)

**A**.**THM{y0u_c4n'7_533_m3}**

## **Q4**.*Easter 4*

**Hint**.*time-based sqli*

`/login`へ`sqlmap`を実行すると`THM_f0und_m3`データベースを発見しました。

```
$ sqlmap -u "http://10.10.221.183/login/" --data "username=name&password=pass&submit=submit" --batch --dbs

(省略)

available databases [4]:
[*] information_schema
[*] mysql
[*] performance_schema
[*] THM_f0und_m3
```

データベースの中身を全て取得します。

```
$ sqlmap -u "http://10.10.221.183/login/" --data "username=name&password=pass&submit=submit" --batch --dbms mysql -D THM_f0und_m3 --dump
```

`nothing_inside`テーブルからフラグを得られました。

```
THM{1nj3c7_l1k3_4_b055}
Database: THM_f0und_m3
Table: nothing_inside
[1 entry]
+-------------------------+
| Easter_4                |
+-------------------------+
| THM{1nj3c7_l1k3_4_b055} |
+-------------------------+
```

**A**.**THM{1nj3c7_l1k3_4_b055}**

## **Q5**.*Easter 5*

**Hint**.*Another sqli*

Q4で実行した`sqlmap`の結果から、ユーザー情報を得られました。

```
Database: THM_f0und_m3                                                                                         
Table: user
[2 entries]
+------------------------------------------+----------+
| password                                 | username |
+------------------------------------------+----------+
| 05f3672ba34409136aa71b8d00070d1b (cutie) | DesKel   |
| He is a nice guy, say hello for me       | Skidy    |
+------------------------------------------+----------+
```

`Username: Deskel`,`Password: cutie`でリクエストを送信するとフラグを得られました。

![east5 flag.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/137e97bc-faa2-6c53-6135-bbcf3331e1ea.png)

**A**.**THM{wh47_d1d_17_c057_70_cr4ck_7h3_5ql}**

## **Q6**.*Easter 6*

**Hint**.*Look out for the response header.*

`/`へアクセスした際のレスポンスヘッダーからフラグを得られました。

![east6 flag.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/eee11b27-b1fb-2016-7df5-64d387180d87.png)

**A**.**THM{l37'5_p4r7y_h4rd}**

## **Q7**.*Easter 7*

**Hint**.*Cookie is delicious*

`Cookie`の`value`を`1`に変更し、`/`へアクセスするとフラグを得られました。

![east7 edit cookie.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/60124127-cefd-2c9e-e86e-56da8540f248.png)

![east7 flag.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/cf793ec9-63b5-e1a0-0e1f-edd1e10ea284.png)

**A**.**THM{w3lc0m3!_4nd_w3lc0m3}**

## **Q8**.*Easter 8*

**Hint**.*Mozilla/5.0 (iPhone; CPU iPhone OS 13_1_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.1 Mobile/15E148 Safari/604.1*

`User-Agent`をヒントの物に変更するとレスポンスでフラグを得られました。

![east8 flag.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/483f85ef-275d-e35a-c392-4234b5f271a2.png)

**A**.**THM{h3y_r1ch3r_wh3r3_15_my_k1dn3y}**

## **Q9**.*Easter 9*

**Hint**.*Something is redirected too fast. You need to capture it.*

`/ready`へアクセスし、ソースコードを見るとフラグを得られました。

![east9 flag.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/fe5a951c-bbac-f715-578f-3a323925f1c6.png)

**A**.**THM{60nn4_60_f457}**

## **Q10**.*Easter 10*

**Hint**.*Look at THM URL without https:// and use it as a referrer.*

`/free_sub/`へリクエストヘッダーとして`Referer: tryhackme.com`を追加すると、レスポンスでフラグを得られました。

![east10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/8eb4dafd-0949-ea41-c1ad-b4534f7034af.png)

**A**.**THM{50rry_dud3}**

## **Q11**.*Easter 11*

**Hint**.*Temper the html*

`dinner`パラメータに`egg`を入れてPOSTリクエストを送信するとフラグを得られました。

![east11 flag.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/77f90577-8f13-3a3d-5190-ff668023985b.png)

**A**.**THM{366y_b4k3y}**

## **Q12**.*Easter 12*

**Hint**.*Fake js file*

`/jquery-9.1.2.js`を発見したのでアクセスすると`str1`変数に定義されている文字列を発見しました。

![east12 source code.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/e8698a25-0b83-34ee-6d75-7b2e038f0ec8.png)

16進数でデコードするとフラグを得られました。

```
$ echo "4561737465722031322069732054484d7b68316464336e5f6a355f66316c337d" | xxd -r -p
Easter 12 is THM{h1dd3n_j5_f1l3}
```

**A**.**THM{h1dd3n_j5_f1l3}**

## **Q13**.*Easter 13*

インデックスページから得られた`/ready/gone.php`へアクセスするとフラグを得られます。

![east13 flag.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/69952389-b983-8646-df33-dcfefad31849.png)

**A**.**THM{1_c4n'7_b3l13v3_17}**

## **Q14**.*Easter 14*

**Hint**.*Embed image code*

インデックスページのコメントアウトからimgタグを発見しました。

![east14 strings.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/5a3fe848-9f1b-8e58-aea4-fdfa35fd3cab.png)

別途HTMLファイルに書き出すとフラグの画像が得られました。

![east14 flag.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/815d600d-0d41-6896-f573-c0228b1db901.png)

**A**.**THM{d1r3c7_3mb3d}**

## **Q15**.*Easter 15*

**Hint**.*Try guest the alphabet and the hash code*

ヒントの文字列`51 89 77 93 126 14 93 10 `に対してデコードなどを試しましたが、有効なものは見つかりませんでした。

文字を`a`,`b`,`c`など一文字ずつ送信するとそれぞれのハッシュ値を得られたので`A~Z`,`a~z`全パターンを試してテーブルを作ります。

文字のリストファイルを作りBurpでブルートフォースします。

```string_list.txt
A
B
C
D
E
F
G
H
I
J
K

(省略)
```

![east15 brute force.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/fff70271-85a3-d445-7064-aa4f48abbbf2.png)

レスポンスを確認し、ヒントに対応する文字を調べるます。

```
51(G) 89(a) 77(m) 93(e) 126(O) 14(v) 93(e) 10(r)
```

`GameOver`という文字列を求めることが出来ました。
フォームで送信するとフラグを得られました。

![east15 flag.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/99780d37-06b9-6415-d59c-db34cddaddfa.png)

**A**.**THM{ju57_4_64m3}**

## **Q16**.*Easter 16*

**Hint**.*Make all inputs into one form.*

`/game2`へ`button`パラメータをすべて追加してリクエストを送ると、レスポンスでフラグを得られました。

![east16 flag.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/f21a7707-3d24-c56e-bc08-f06dcf7e64d3.png)

文字列のリストファイルを作り、Burpでブルートフォースをします。

**A**.**THM{73mp3r_7h3_h7ml}**

## **Q17**.*Easter 17*

**Hint**.*bin -> dec -> hex -> ascii*

インデックスページのコメントアウトから文字列を発見しました。

![east17 script.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/73923635-917e-80e6-3f63-c5191996c651.png)

ヒントの順番通りにデコードしてフラグを得られました。

![east17 flag.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/79b2c3d2-cb9c-43b1-872b-2a6481cfc217.png)

**A**.**THM{j5_j5_k3p_d3c0d3}**

## **Q18**.*Easter 18*

**Hint**.*Request header. Format is egg:Yes*

GETリクエストヘッダーに`egg:Yes`

![east18 flag.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/e5945b38-f8a8-03d7-4993-944f6277561a.png)

**A**.**THM{70ny_r0ll_7h3_366}**

## **Q19**.*Easter 19*

**Hint**.*A thick dark line*

`small.png`に`width=2000`,`height=2`が設定されており、画像がうまく表示されていないと分かります。

![east19 line.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/df6fb24a-cfcb-6fc9-5297-729d4356d4f0.png)

`/small.png`にアクセスし、画像を確認するとフラグを得られました。

![east19 flag.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/d876539e-3817-1031-ac68-edf4e07eee39.png)

**A**.**THM{700_5m4ll_3yy}**

## **Q20**.*Easter 20*

**Hint**.*You need to POST the data instead of GET. Burp suite or curl might help.*

`username=DesKel&password=heIsDumb`をBodyデータに追加して`/`へPOSTリクエストを送信するとフラグを得られました。

![east20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/8d677d0c-d033-2448-a2b7-7c1fb64cb150.png)

**A**.**THM{17_w45_m3_4ll_4l0n6}**