mcpField
S
ssrf-hunting

ssrf-hunting

github.com/securityskillsセキュリティ0172 回インストール9 週間前に更新
リポジトリ

ssrf-hunting について

ssrf-huntingは、サーバーサイドリクエストフォージェリのリスクを体系的に調査するセキュリティスキルです。URL取得箇所の特定、回避やブラインドSSRFのテスト、修正事項の整理を支援します。

主な機能

  1. 01サーバー側のURL取得箇所の特定
  2. 02ループバックと内部ホストのテスト
  3. 03フィルター回避とリダイレクトの確認
  4. 04クラウドメタデータとブラインドSSRFのテスト
  5. 05対応記録と修正案の整理

活用シーン

  1. 01WebhookやインポーターのURL取得を監査
  2. 02プレビューサービスやプロキシ端点をテスト
  3. 03SSRF対策とクラウドメタデータ露出を評価

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/securityskills/skills --skill ssrf-hunting

インストール後、Claude Code で/ssrf-huntingを入力して読み込まれたか確認します。

詳細

SSRF の調査

サーバーが、制御可能な URL を取得する箇所をすべて特定し、計画的にテストします。

調査する箇所

  • Webhook やコールバック URL(決済、連携、アラート)
  • インポーター:URL からのアバター取得、URL からのインポート、RSS フィードリーダー
  • プレビュー生成機能:リンクの展開、PDF/画像のレンダラー、スクリーンショットサービス
  • 外部エンティティや参照を解決するファイルパーサー(XInclude、XSLT、SVG)
  • url= パラメーターを受け取るプロキシ/リダイレクトエンドポイント

テストマトリックス

基本
  • 内部サービス向けの http://127.0.0.1:PORT(レスポンスの差異から稼働中のポートを特定します)
  • http://localhost、http://[::1]、http://2130706433(整数形式の IP)、http://0x7f000001
  • 内部ホスト名:http://inventory、http://kubernetes.default.svc
フィルターの回避
  • ループバックに解決される DNS 名:カスタムレコード、localtest.me、nip.io のパターン
  • リダイレクト:公開 URL から内部の宛先へ 302 リダイレクト(リダイレクトが追跡されるかをテストします)
  • 単一解決のフィルターに対する DNS リバインディング(rebind.network のツール)
  • スキームの悪用:パーサーが許容する場合は file:///etc/passwd、gopher://、dict://
クラウドメタデータ(影響大)
  • AWS IMDSv1:http://169.254.169.254/latest/meta-data/iam/security-credentials/
  • AWS IMDSv2 ではトークンが必要です。302 リダイレクト経由でホップ制限を回避できるか試します
  • GCP:Metadata-Flavor: Google を指定した http://metadata.google.internal/computeMetadata/v1/
  • Azure:Metadata: true を指定した http://169.254.169.254/metadata/instance?api-version=2021-02-01
ブラインド SSRF
  • 帯域外の DNS/HTTP コールバック(interactsh 形式)を使い、目に見えるレスポンスなしで取得を確認します
  • オープンポートとフィルターされたポートに対するレスポンス時間の差
  • エラーメッセージからの情報漏えい:接続拒否とタイムアウト、HTTP エラーコード

ルール

  • 認証情報を返すメタデータを読み取る場合は、最小限の証拠(ロール名、キーのプレフィックス)を記録して、すぐに報告します。認可なしに認証情報を使ってピボットしてはいけません
  • SSRF を通じて実際のユーザーデータを外部に持ち出してはいけません

修正に関する注意事項

宛先を許可リストで制限する、ネットワーク層でリンクローカル/ループバックをブロックする、リダイレクトの追跡を無効にする、IMDSv2 を使用する、送信トラフィックを制御する隔離されたワーカーから取得するようにします。

コメント