Hello there, ('ω')ノ
SSRFとは?
通常、社内システムは社内ネットワーク内でしかアクセスできないページやサーバーがあります。
ですが、次のような機能がある場合:
- 画像URLを指定してアップロード
- PDFやサイトのプレビュー機能
- Webhookの設定画面
本来見せたくない内部情報まで取得できてしまうことがあります。
よくあるSSRFが発生する場面
✅ 画像やファイルURL指定型アップロード機能
✅ URL入力欄があるフォーム
✅ Webhookや通知設定画面
こういった場所で、外部URL以外も指定できてしまわないか? という視点で見ます。
実際のチェック手順① URL入力欄を探す
- 管理画面や設定画面を中心に
- URLを入力する欄を探します
例:
- Webhook通知先URL
- 画像取得用URL
実際のチェック手順② ローカルIPなどを指定してみる
通常は次のようなURLを入力して動作確認をします:
✅ 観察ポイント:
- 正常なエラーメッセージが出るか?
- 何らかのレスポンスが返ってくるか?
- 内部限定の情報が表示されないか?
実務でのチェック例
社内システム設定画面:
- Webhook送信先: https://api.example.co.jp/hook
→ これを: http://127.0.0.1:8000 http://192.168.x.x などに変更して送信テスト
結果:
- 通信エラー → 正常
- 200 OK → SSRF疑いあり
チェックリストまとめ
- [ ] URL入力欄をすべて洗い出したか?
- [ ] ローカルIPや内部アドレス指定を試したか?
- [ ] クラウド用特殊IP(169.254.169.254など)を試したか?
- [ ] エラーやレスポンス内容を確認したか?
注意事項
- 本番環境でのチェックは必ず許可を取ること
- 特に社内限定サーバーや機密システムに影響がないか注意
- AWSやクラウド環境では事故につながる可能性があるため慎重に
まとめ
- SSRFは「サーバーを経由して内部システムにアクセスできるか」を見る
- URL入力欄やWebhook設定画面が要チェックポイント
- 127.0.0.1 や AWS用特殊IPを使ったテストが基本手順
Best regards, (^^ゞ