judge-ctf について
judge-ctfは、CTFでのflag取得状況を評価し、失敗の原因を診断するセキュリティスキルです。発見・悪用した脆弱性に応じて、具体的な次の手順を提示します。
主な機能
- 01ログや証拠からのflag検出
- 02脆弱性発見状況の診断
- 03脆弱性悪用後の手順案内
- 04具体的なペイロードと場所の提示
活用シーン
- 01CTFでflagを取得できたかの確認
- 02発見した脆弱性でflagを得られなかった原因分析
- 03脆弱性悪用後の具体的な次の手順の提示
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ wgpsec/ aboutsecurity --skill judge-ctfインストール後、Claude Code で/judge-ctfを入力して読み込まれたか確認します。
詳細
CTF フラグ取得の評価チェックリスト
唯一の成功基準
flag{...} は見つかりましたか?
- エージェントの出力ログで
flag{を検索します - 証拠ファイルで
flag{を検索します - vulns.json の詳細フィールドを検索します
見つかった場合 → complete: true。これ以上の評価は不要です。
フラグが見つからなかった場合の診断
ステップ 1: 脆弱性は発見されましたか?
if vuln_count == 0:
→ Insufficient reconnaissance, expand attack surface
feedback: "No vulnerabilities discovered. Suggestions:
1. Carefully inspect all HTTP responses for hidden clues
2. Try directory bruteforce to discover hidden endpoints
3. Check page source for comments and hidden parameters
4. Try common default credentials for login"
ステップ 2: 脆弱性は悪用されましたか?
if vulns_found but not_exploited:
→ Insufficient exploitation
feedback: "Discovered {vuln_type} but did not exploit to get flag. Suggestions:
- SQLi: Use UNION SELECT to read database tables, find flag table
- LFI: Read /flag.txt, /home/*/flag, /var/www/flag
- RCE: find / -name 'flag*' 2>/dev/null
- IDOR: Enumerate all id values, check each response for flag"
ステップ 3: 悪用したものの、フラグが見つからなかった場合
if vuln_exploited but no_flag:
→ Flag may not be in expected location
feedback: "Vulnerability exploited but flag not found. Suggestions:
1. Database search: SELECT * FROM flags / search all tables
2. File search: find / grep -r 'flag{' / env | grep FLAG
3. Check response headers: curl -v for HTTP headers
4. Check hidden pages: use gained privileges to access /admin, /dashboard
5. Check source code: decompile/view application source for hardcoded flag"
よくある CTF チャレンジのパターン
正確なフィードバックを提供できるよう、評価者は以下のパターンを把握しておく必要があります。
| 脆弱性の種類 | フラグの一般的な場所 |
|---|---|
| SQL インジェクション | データベース内のいずれかのテーブルのフィールド |
| LFI/パストラバーサル | /flag.txt、/etc/flag、またはアプリケーションのディレクトリ内 |
| RCE/コマンドインジェクション | ファイルシステム内。find/grep が必要 |
| IDOR | 特定のリソースの id に対応するコンテンツ |
| デシリアライゼーション | RCE を取得した後のファイルシステム |
| SSRF | 内部サービスからの応答 |
| XSS | 通常は直接フラグを取得できません。ただし、管理者ボットが存在する場合を除きます |
| 情報漏えい | ソースコードのコメント、バックアップファイル、設定ファイル |
フィードバックの具体性に関する要件
禁止事項:「テストを続けてください」や「さらに詳しく調べてください」といった曖昧なフィードバック。
必須事項:以下の具体的な情報を提供してください。
- 発見したどの脆弱性を悪用するか
- 具体的な悪用手順(ペイロードのレベルまで)
- フラグがある可能性が最も高い場所
コメント
Markdown 対応