~/ / problem3 · programming
Programming · Problem 03

照合プロトコルの試練

200 pts★★Automation / Protocol

状況

独自プロトコルで動く「照合サーバー」に接続した。サーバーは次々と小さな変換課題 (合計40ラウンド)を出題してくる。全ラウンドを制限時間内に 正解し続けると、最後に flag が開示される。1問ずつ手で解いていては到底間に合わない。クライアントを自動化して解ききれ。

プロトコル仕様

POST /api/problem3   (Content-Type: application/json)

# 開始
{ "action": "start" }
  -> { token, challenge, total_rounds, time_limit_ms }

# 解答(round ごとに繰り返す)
{ "action": "answer", "token": "<直前のtoken>", "answer": "<解答>" }
  -> 正解(継続): { correct:true, cleared, token, challenge }
  -> 全問正解 : { correct:true, done:true, flag }
  -> 誤答/時間切れ: { correct:false, reason }

challenge { round, total, type, prompt, data }type は次の5種:

token は毎回更新される(前の round の token で次を解答)。制限時間はセッション開始 からの通算。手作業では絶対に間に合わない設計なので、ループを書くのが正攻法。

スターター(curl で1ラウンドだけ叩いてみる)

curl -s http://localhost:3000/api/problem3 \
  -H 'Content-Type: application/json' \
  -d '{"action":"start"}' | jq
Claude Code に任せるなら:「/api/problem3 の照合プロトコルを解く Python スクリプトを書いて。start でtokenと課題を受け取り、type ごとに変換して answer をPOST、全40ラウンド解いて flag を出すまでループして」

参考: ブラウザ内オートソルバー(デモ)

本来の狙いは 自分でスクリプトを書いて解く ことです。まず curl や Python で挑戦し、動きを確認したいときにこのデモを使ってください。

flag を提出

← problem2 · forensics problem4 · crypto →