情報セキュリティスペシャリスト XSS の過去問題

情報セキュリティスペシャリストのクロスサイトスクリプティングの問題から質問がありました。

質問内容
情報セキュリティスペシャリスト 過去問題の「解説」を教えて下さい。
H24秋 午後Ⅱ 問1 設2(2)
H24秋 午後Ⅱ 問1 設3(1)

試験問題:
https://www.jitec.ipa.go.jp/1_04hanni_sukiru/mondai_kaitou_2012h24_2/2012h24a_sc_pm2_qs.pdf

回答:
https://www.jitec.ipa.go.jp/1_04hanni_sukiru/mondai_kaitou_2012h24_2/2012h24a_sc_pm2_ans.pdf

ほんとは問題文をここに載せて解説したいのですが、引用していいかどうかが分からなかったのでしませんでした。

H24秋 午後Ⅱ 問1 設2(2)についての質問者さんの疑問
図9の74行目のみ、value値が””で囲まれていません。(42、46、50、70行目は囲まれている)
ここで疑問なのが、""で囲まれていないvalueが何故XSSの脆弱性に該当するのかが分かりませんでした。図9の74行目に示されているinputを試しにhtmlに記入しましたが、value値がそのまま表示されるだけで、回答を理解することができませんでした。
試したhtml
<HTML>
<HEAD>
<TITLE>aaa</TITLE>
</HEAD>

<BODY>
<input type=text name=mbmail value=taro@mb.xx.yy>
</BODY>

H24秋 午後Ⅱ 問1 設2(2)についての私の回答
74行目がおかしいという点までは見つけられたということでいいでしょうか?
※つまり回答はできる。

なぜこれがクロスサイトスプリクティングの脆弱性かというと、図8のHTMLリクエストをサーバに送信した返事が図9のHTMLレスポンスということを踏まえる必要があります。

つまり図8の12行目で mbmail=taro@mb.xx.yy というパラメータを送っているのですが、返事には本来 "" でくくられるはずのデータではなく74行目のようなHTMLが返ってきました。
もし図8の12行目のパラメタに mbmail="a onmouseover=alert(document.cookie);" と送れば、返事のレスポンスのHTMLは
<td align="center"><input type=text name=mbmail value=a onmouseover=alert(document.cookie);></td>という返事が返ってきます。onmouseoverというイベントができあがっちゃってますね。
XSSが成立しました。


H24秋 午後Ⅱ 問1 設3(1)についての質問者さんの疑問
表6において、パラメータが記載されているのは項番2と5がありますが、同じ確認画面なのに2のみのパラメータがXSSの脆弱性に該当するのかがわかりませんでした。(どうして項番5のパラメータはXSSの脆弱性対象外なのか?)
10ページ目から始まる[γサイトの診断結果と検出された脆弱性への対応]の問題文から、IPAが示している回答に結びつけることができませんでした。図4や図5のようなリクエスト図、レスポンス図がない状態でどうやって判断できるのでしょうか?

H24秋 午後Ⅱ 問1 設3(1)についての私の回答
これは悪意のあるWebサイトを誰かが立ち上げてリンクを踏ませる脆弱性です。

なんとかしてこのようなURLを踏ませるとXSSが成立します。
攻撃URL①:https://www.j-sha.jp/brandgamma/signup?action=input&ID=<script>alert("XSS");</script>&mail=taro@xx.yy
攻撃URL②:https://www.j-sha.jp/brandgamma/signup?action=input&ID=taro&mail=<script>alert("XSS");</script>
①はIDの脆弱性を狙っていて②はmailです。

項番5では URLにkey=xxxxxxxがついているので、事前にXSS用の攻撃URLを準備することができないのです。

参考URL
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q12165328237

補足
もしこれで分からない人、他の疑問がある人がいたらコメントしてくださいね。

0 件のコメント:

コメントを投稿