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

hamayanhamayan's blog

http://167.71.246.232/系 [Tenable CTF 2021]

  • Stay Away Creepy Crawlers
    • Find the flag where they keep the creepy crawlers away.
    • Crawlersなので、robots.txtを見る
    • flag{mr_roboto}
  • Source of All Evil
    • どこかのソースコードにフラグが入ってるんだろうなぁと思ってみると、ルートページにある
    • flag{best_implants_ever}
  • Can't find it
  • Show me what you got
    • Find the "indexes" flag here: http://167.71.246.232/
    • 通信を見ると/images/というフォルダに入った画像がリクエストされている
    • /images/のみにするとどうだろうか。フォルダ一覧が表示され、隠されたファイルを見つけることができる
    • flag{disable_directory_indexes}
  • Certificate of Authenticity
    • Certificateということなので、httpsでつないでみると自己証明書が使われていた
    • 発行先がフラグになっている
    • flag{selfsignedcert}
  • Headers for you inspiration
    • ルートページにヘッダーがついていた
    • Flag: flag{headersftw}
  • Ripper Doc
    • Find the flag in the ripper doc list.
    • /certified_rippers.phpの通信を見ると、Cookieでauthenticatedが使われている。trueに変えて送ってみると、情報が得られる
    • flag{messing_with_cookies}
  • Protected Directory
    • Find the flag in the protected directory.
    • 問題名に当たりそうなものは/admin/くらいしかない。どうやって攻撃しようか。
    • 総当りをする心をぐっと抑えて/.htpasswdを探してみるとある
    • admin:$apr1$1U8G15kK$tr9xPqBn68moYoH4atbg20
  • Follow The Rabbit Hole
    • Follow the rabbit hole and get the flag.
    • 以下

/rabbit_hole.php?page=cE4g5bWZtYCuovEgYSO1 [513, '71'] 4O48APmBiNJhZBfTWMzD あたりがまず怪しいので、CyberChefしてみるが何も反応がない。 pageと出力の形式が同じ感じだったので、とりあえず出力をpageに入れてみると別の応答が得られる。 問題にも"Crawler"とあるので、クロールスクリプトを書いて探ってみる。

import requests
import re
import time

root = 'http://167.71.246.232:8080'
current_page = 'CcOz5dNeYSJB6gMKgBzD'

for _ in range(100):
    r = requests.get(f"{root}/rabbit_hole.php?page={current_page}")
    print(r.text)
    r2 = re.findall(r'\[(.*)\][\r\n|\n|\r] (.*)', r.text)
    next_page = r2[0][1]
    print(f'======= {current_page} => {next_page} ========')
    current_page = next_page
    time.sleep(3)

全部たどるとendで終わり。

Tenable CTF - Down the Rabbit Hole

なんじゃそれ…