コース目次 / 第2章

偵察 — 「おかしい所」を探す

普通に触った次の一歩。robots.txt・URL のパラメータ・id・入力欄を、開発者の想定を外して観察します。triage の考え方を使います。

第2章 / 全5章目安 約12分この章のゴール: 偵察の型(想定を外して観察する)を身につけ、攻めどころの仮説を立てられるようになる

普通に触り終えたら、次は偵察(recon)です。狙いは一つ——開発者が想定していない使い方をして、反応の違いを見つけることです。旗そのものより先に、「攻めどころの仮説」を集めます。

表に出ていない入口を探す

  • /robots.txt を開いてみる。検索エンジンに「見せたくない」パスが、逆にヒントとして書かれていることがあります。
  • リンクされていない管理者ページ・ダウンロード機能・ツール系のページが無いか。ページのソース(HTML)やコメントも読みます。

想定を外した値を入れる

前コースで身につけた「HTTP を手で送る」目が、ここで効きます。

  • URL のパラメータ(?id=1 の 1)を、2・0・-1・巨大な数・文字列に変えたら?
  • メモの id を、自分のものでない番号にしたら? (旗艦で見た IDOR の発想です)
  • 入力欄(検索・ログイン・メモ本文)に、<script> やクォート '、特殊文字を入れたら? 反応が変わる所は、入力を正しく扱えていない疑いがあります。
  • 機能を一つずつ、入力の目で疑う。ログイン、検索、メモを直接開く操作、管理者向けの画面、ファイルのダウンロード、外部への問い合わせ系のツール——どれも「利用者が渡した値を、そのまま信じて動いていないか?」という同じ問いで見ます。

triage の型を借りる

このアプリは Web 題材ですが、CTF には Web 以外(暗号・バイナリ解析・フォレンジックなど)もあります。カテゴリを問わず、最初にやることは同じ——安全な静的偵察で「これは何の問題か」を見立てることです。

Claude Code には、新しい CTF 課題を渡すとカテゴリを見立てて安全な偵察だけを走らせ、着手メモを作るスキル(ctf-triage)があります。「この課題を偵察して」と頼むと、勝手に攻撃コードを実行したりせず、読み取り中心の下調べを手伝います。偵察の型を、そのまま道具として使えます。

仮説にする

偵察の成果は、旗そのものではなく仮説です。「このダウンロード機能、パスを渡せるなら別のファイルも取れるかも」「この id、他人のメモが見えるかも」——こうした仮説を数枚たまったら、次は一つずつ検証します。詰まったときの進み方を、次章で扱います。

こうなっていればOK

卒業まであと2章です。

この章はまだ完了していません。