judge-pentest について
セキュリティテスターやエージェント向けのペネトレーションテスト評価チェックリストです。WebとAPIの攻撃対象範囲を確認し、発見済みの脆弱性だけで終了せず、次のテストを案内します。
主な機能
- 01WebとAPIの脆弱性チェックリスト
- 02網羅率に基づく完了判定
- 03次のテストに向けた具体的なフィードバック
- 04既知のCVE/CNVD検索要件
活用シーン
- 01各ペネトレーションテスト後の網羅状況確認
- 02未テストのエンドポイントと攻撃種別の特定
- 03追加テストが必要かの判断
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ wgpsec/ aboutsecurity --skill judge-pentestインストール後、Claude Code で/judge-pentestを入力して読み込まれたか確認します。
詳細
ペネトレーションテスト評価チェックリスト
Web アプリケーションの脆弱性カバレッジ確認
以下の各攻撃対象について、テスト済みかどうかを確認してください。未テストの項目はギャップとして記録してください。
インジェクション
- SQL インジェクション(ログインフォーム、検索、API パラメーター、Cookie)
- XPath インジェクション
- LDAP インジェクション
- コマンドインジェクション(OS コマンドインジェクション)
- SSTI(サーバーサイドテンプレートインジェクション)
- XXE(XML 外部エンティティインジェクション)
クロスサイト
- 反射型 XSS(検索ボックス、URL パラメーター、エラーページ)
- 格納型 XSS(コメント、フィードバック、ユーザープロフィール)
- DOM XSS
- CSRF(送金、パスワード変更、重要な操作)
認証と認可
- デフォルト/脆弱な認証情報
- SQL インジェクションによる認証バイパス
- ブルートフォース対策(アカウントロックアウトの仕組み)
- ユーザー名の列挙(エラーメッセージの差異)
- セッション管理(セッション固定、Cookie のセキュリティ属性)
- JWT/トークンのセキュリティ(署名検証、アルゴリズムの混同、平文エンコード)
- 垂直権限昇格(一般ユーザー → 管理者機能)
- 水平権限昇格/IDOR(他のユーザーのリソースへのアクセス)
ビジネスロジック
- IDOR — アカウント情報の閲覧
- IDOR — 送金/取引操作
- IDOR — パスワード変更
- 負の金額/ゼロ金額の取引
- 並行処理/競合状態
- ビジネスフローのバイパス
情報漏えい
- エラーページからの情報漏えい(スタックトレース、パス)
- API ドキュメントの露出(Swagger、WSDL)
- バックアップファイルの露出
- 機密性の高い設定情報の露出
- HTTP レスポンスヘッダー(Server のバージョン、X-Powered-By)
サーバーサイド
- SSRF(サーバーサイドリクエストフォージェリ)
- ファイルアップロードの脆弱性
- パストラバーサル/LFI/RFI
- デシリアライゼーションの脆弱性
設定
- ディレクトリリスティング
API 固有
- REST API の認証バイパス
- API IDOR
- API パラメーターの改ざん
- API のレート制限
既知の CVE/CNVD
- 対象製品/技術スタックに関する既知の CVE
- 対象製品/技術スタックに関する既知の CNVD
評価の判定ロジック
ペネトレーションテストの目標は、できるだけ多くの脆弱性を発見することです。早まって終了してはいけません。
# In pentest scenarios, complete is advisory only and does NOT trigger early exit
# The judge's core value is providing precise "what to test next round" feedback
if tested_categories >= 90% of total && two consecutive rounds with no new vulns:
complete = true, confidence >= 0.8
else:
complete = false
feedback = explicitly list untested attack surfaces with specific testing suggestions
missing_areas = names of untested categories
重要:1つの方向を見落とすより、もう1ラウンド実施するほうが望ましいです。多くの脆弱性が見つかっていても、未テストの攻撃対象が残っている場合は、complete=false を返してください。
このラウンドで対象製品/技術スタックが特定されたにもかかわらず、search_vulndb が一度も呼び出されていない場合は、必ず complete=false を返し、既知の脆弱性を照会するために search_vulndb(query="product name") を使用するよう求めてください。
フィードバックテンプレート
complete=false の場合、フィードバックには以下を含めてください。
- 完了した作業(肯定的に評価し、繰り返しを避ける)
- 具体的な未実施のテスト項目(「テストを続けてください」のような曖昧な表現は避け、具体的なエンドポイントと脆弱性の種類を示す)
- 推奨するテスト手順(例:「/api/search のクエリパラメーターに対して sqlmap を使い、詳細なインジェクションテストを実施する」)
コメント
Markdown 対応