https://ctftime.org/event/2416
[Web] Introspection
ソースコード無し。フラグを入力するサイトが与えられる。Burp Suiteを起動してサイトを巡回すると/script.js
が読み込まれていて、以下のようにフラグが含まれていた。
function checkFlag() { const flagInput = document.getElementById('flagInput').value; const result = document.getElementById('result'); const flag = "OSCTF{■■■■■■■■■■■■}"; if (flagInput === flag) { result.textContent = "Congratulations! You found the flag!"; result.style.color = "green"; } else { result.textContent = "Incorrect flag. Try again."; result.style.color = "red"; } }
[Web] Style Query Listing...?
SQL Injectionができるっぽいので、適当に試して一発で以下でフラグが手に入った。
username -> admin password -> ' or ''='
理論無し。
[Web] Heads or Tails?
ソースコード無し。GET /
を開くとWelcome to my first ever website.
と言われる。あまりにGuessだったので寝かせていたが、ヒントが有償で開けるようになったので開いてみる。
Try making a custom directory/file bruteforcing list that is made in the following format: (http_request_methods)-(words_related_to_ctf)
ということでGET /get-flag
を試してみるとMethod Not Allowed
という応答が得られる。OPTIONSを試してみよう。以下のようなリクエストを飛ばしてみる。
OPTIONS /get-flag HTTP/1.1 Host: 34.16.207.52:4789
すると、Allow: OPTIONS, HEAD
と帰ってくる。HEADを試してみよう。
HEAD /get-flag HTTP/1.1 Host: 34.16.207.52:4789
を送るとFlagヘッダーがレスポンスに含まれてきて、フラグ獲得。
[Web] Indoor WebApp
ソースコード無し。サイトを開くとWelcome to the IDOR Challenge
と言われる。View Profileを押してみると/profile?user_id=1
に遷移する。1から2に変更してみるとフラグが得られた。