ペネトレ

SSRFとは(Server-Side Request Forgery)

🌐 SSRFとは?

SSRF(Server-Side Request Forgery)
日本語では「サーバーサイドリクエストフォージェリ」。

攻撃者が“サーバーに”別の場所へリクエストを送らせる脆弱性


💡 かんたんに言うと

本来は:

/fetch?url=https://api.example.com/data

のように、
サーバーが外部APIにアクセスする機能。

でも攻撃者が:

/fetch?url=http://127.0.0.1/admin

のように改ざんすると…

👉 サーバー自身の内部管理画面にアクセスしてしまう


🔥 何が危険?

通常、

  • 127.0.0.1
  • localhost
  • 社内IP(192.168.x.x など)
  • クラウドのメタデータAPI

外部から直接アクセスできない

でもSSRFがあると:

「サーバー自身」にアクセスさせられる

= 内部ネットワーク突破。


☁ 特に危ないケース(クラウド)

例:

http://169.254.169.254/latest/meta-data/

これはクラウド環境(例:Amazon Web Services)の
認証情報取得用メタデータAPI

SSRFがあると:

  • IAMキー取得
  • S3アクセス
  • サーバー乗っ取り

につながることも。


🧠 なぜ起きる?

コード例:

requests.get(request.GET["url"])

👉 ユーザー入力URLをそのままサーバーが取得している


🛡 対策

  1. URLのホワイトリスト制御
  2. 内部IPへのアクセス禁止
  3. DNS再解決対策
  4. メタデータAPIの制限(IMDSv2など)
  5. プロキシ経由で制御

🎯 一言まとめ

SSRF = 「サーバーを踏み台にして内部に侵入する攻撃」


🆚 他の脆弱性との違い

脆弱性何を悪用?攻撃対象
IDORID他人のデータ
File Inclusionファイルパスサーバーファイル
SSRFURL内部ネットワーク

-ペネトレ
-