HOME»情報処理安全確保支援士掲示板»令和6年度 春期 午後3 SSRFについて
投稿する
この認識が誤りです。以下の手順で処理されています。
1.図7のリクエストをURLにすると
「https://WEBサーバY/top?page=https://サイトP.jp/topic/202404.html 」
のようになっており、利用者のブラウザはWEBサーバYの「https://WEBサーバY/top」にアクセスし、パラメータ「page」の値としてサイトPのアドレスを送信します。
2.リクエストを受取ったサーバYは「page」の値を取り出して、「https://サイトP.jp/topic/202404.html」へアクセスし、そのレスポンスを取得します。
3.サーバYは2で取得したレスポンスをブラウザへ送信します。
これは利用者のブラウザから送信する「page」の値であるURLを変更することでサーバYに任意のURLへアクセスさせることができるということになり、これがSSRFです。
サーバYのCMS管理画面は、通常であれば外部IPからのアクセスはFW等によるアクセス制御により拒否していると思われます。しかし、pageの値を変更することでサーバYに対してサーバYのCMS管理画面へアクセスさせ、その結果をブラウザへ転送させることでアクセス制御をバイパスし、本来はアクセスできないCMS管理画面へブラウザからアクセスをしている状態になります。これがSSRFの(2)の状態です。
大問3の設問4(1)に関してですが、「page=https://サイトP.jp/topic/202404.html」の部分を変更することでサーバYに対して任意のURLへアクセスさせることはできますが、サーバYが受け取ったURLをGETで送るかPOSTで送るかの制御まではできませんし、仮にサーバがPOSTで送るとしても、URLだけではPOSTのリクエストボディの値までは制御できません。
そのため仮に正しいパスワードを知っていたとしても、この方法でログインすることができません。
よって答えは、「POSTメソッドだけが許可されているため」「管理者しかログインできない画面まで行ったけどPW分からないから弾かれた」ではなく、送信メソッドまでは制御できないからであり、「変更後のURLにPOSTデータは送ることができないから」になります。
»[1863] セキュアプログラミングについて 投稿数:2
»[1862] 令和1年秋・午後Ⅰ・問2・設問2(3) 投稿数:4
令和6年度 春期 午後3 SSRFについて [1865]
八王子さん(No.1)
https://www.ipa.go.jp/shiken/mondai-kaiotu/m42obm000000afqx-att/2024r06h_sc_pm_qs.pdf
大問3の設問4(1)にある「SSRF攻撃の特徴を基に答えよ」という点がよくわかりません。
図7を見るとGETリクエストとなっており、問題の冒頭でCMCの管理ログインはPOSTでないと許可されないとあるので「POSTメソッドだけが許可されているため」といった回答を考えていたのですが、これはD社が構築したCMCの特徴であってSSRFの特徴でない気がします。
模範解答の『変更後のURLにPOSTデータは送ることができないから』というのもよく分かりません。
そもそもこの書き換え元のGETリクエストって普通にサイトPへのアクセスなんですよね?URLのアクセス先をCMCのログイン画面にしたんだから当然ログイン先に繋がり、そこからIDもPWも分からず、Cookieは全然違うサイトのものなんだから機能するわけもなく当然失敗するという、「管理者しかログインできない画面まで行ったけどPW分からないから弾かれた」ってだけの話に見えるのですが、これはSSRF攻撃といえるのでしょうか?
大問3の設問4(1)にある「SSRF攻撃の特徴を基に答えよ」という点がよくわかりません。
図7を見るとGETリクエストとなっており、問題の冒頭でCMCの管理ログインはPOSTでないと許可されないとあるので「POSTメソッドだけが許可されているため」といった回答を考えていたのですが、これはD社が構築したCMCの特徴であってSSRFの特徴でない気がします。
模範解答の『変更後のURLにPOSTデータは送ることができないから』というのもよく分かりません。
そもそもこの書き換え元のGETリクエストって普通にサイトPへのアクセスなんですよね?URLのアクセス先をCMCのログイン画面にしたんだから当然ログイン先に繋がり、そこからIDもPWも分からず、Cookieは全然違うサイトのものなんだから機能するわけもなく当然失敗するという、「管理者しかログインできない画面まで行ったけどPW分からないから弾かれた」ってだけの話に見えるのですが、これはSSRF攻撃といえるのでしょうか?
2025.03.21 02:02
むぐむぐさん(No.2)
★SC ブロンズマイスター
>そもそもこの書き換え元のGETリクエストって普通にサイトPへのアクセスなんですよね?
この認識が誤りです。以下の手順で処理されています。
1.図7のリクエストをURLにすると
「https://WEBサーバY/top?page=https://サイトP.jp/topic/202404.html 」
のようになっており、利用者のブラウザはWEBサーバYの「https://WEBサーバY/top」にアクセスし、パラメータ「page」の値としてサイトPのアドレスを送信します。
2.リクエストを受取ったサーバYは「page」の値を取り出して、「https://サイトP.jp/topic/202404.html」へアクセスし、そのレスポンスを取得します。
3.サーバYは2で取得したレスポンスをブラウザへ送信します。
これは利用者のブラウザから送信する「page」の値であるURLを変更することでサーバYに任意のURLへアクセスさせることができるということになり、これがSSRFです。
サーバYのCMS管理画面は、通常であれば外部IPからのアクセスはFW等によるアクセス制御により拒否していると思われます。しかし、pageの値を変更することでサーバYに対してサーバYのCMS管理画面へアクセスさせ、その結果をブラウザへ転送させることでアクセス制御をバイパスし、本来はアクセスできないCMS管理画面へブラウザからアクセスをしている状態になります。これがSSRFの(2)の状態です。
大問3の設問4(1)に関してですが、「page=https://サイトP.jp/topic/202404.html」の部分を変更することでサーバYに対して任意のURLへアクセスさせることはできますが、サーバYが受け取ったURLをGETで送るかPOSTで送るかの制御まではできませんし、仮にサーバがPOSTで送るとしても、URLだけではPOSTのリクエストボディの値までは制御できません。
そのため仮に正しいパスワードを知っていたとしても、この方法でログインすることができません。
よって答えは、「POSTメソッドだけが許可されているため」「管理者しかログインできない画面まで行ったけどPW分からないから弾かれた」ではなく、送信メソッドまでは制御できないからであり、「変更後のURLにPOSTデータは送ることができないから」になります。
2025.03.21 10:27
八王子さん(No.3)
ありがとうございます。
なるほど、ブラウザで直接ユーザがCMS管理画面にアクセスするのではなく、他サイトへのアクセス機能があるWEBサーバYの機能を悪用し、WEBサーバY経由でCMS管理画面にアクセスするのがSSRFなのですね。
その際WEBサーバY経由にするも、WEBサーバYへはGETであり、そこからWEBサーバYがCMS管理画面へのアクセスをPOSTに指定することはできず、PWも指定できないためエラーとなるということですね。理解できました。ありがとうございます。
>これは利用者のブラウザから送信する「page」の値であるURLを変更することでサーバYに任意のURLへアクセスさせることができるということになり、これがSSRFです。
なるほど、ブラウザで直接ユーザがCMS管理画面にアクセスするのではなく、他サイトへのアクセス機能があるWEBサーバYの機能を悪用し、WEBサーバY経由でCMS管理画面にアクセスするのがSSRFなのですね。
その際WEBサーバY経由にするも、WEBサーバYへはGETであり、そこからWEBサーバYがCMS管理画面へのアクセスをPOSTに指定することはできず、PWも指定できないためエラーとなるということですね。理解できました。ありがとうございます。
2025.03.24 02:05
その他のスレッド
»[1864] 令和1年秋・午後Ⅱ・問1・設問2(1)の「対策4」について 投稿数:5»[1863] セキュアプログラミングについて 投稿数:2
»[1862] 令和1年秋・午後Ⅰ・問2・設問2(3) 投稿数:4