HOME»情報処理安全確保支援士掲示板»平成30年春期  午後2問1  設問1(1)

情報処理安全確保支援士掲示板

掲示板検索:

平成30年春期  午後2問1  設問1(1)[0530]

なるうさん(No.1)

前提条件として、以下の理解しかできていません。
DOM-based XSSはWebサイトのサーバにアクセスする以前の、クライアント側のブラウザの脆弱性
Webサイトの正常なスクリプトを、クライアント側のブラウザ上で、意図しないスクリプトとして出力されてしまう脆弱性
XSS(反射型)は悪意あるWebサイトに誘導されて、不正なスクリプトが実行されてしまう脆弱性

公式回答を読んでも全くしっくりきませんでした。
解答に至るまでの経緯を教えてくださいますと助かります。よろしくお願いいたします。

2020.09.13 18:04
グルタミンさん(No.2)

ブラウザに絵や文字が表示される基本的な仕組みは以下のようになります(かなり、ざっくばらんですが)
@クライアントのブラウザがサーバにhttpリクエストを投げる
Aサーバはhttpレスポンスとして、HTML文字列をクライアントに送信する
Bクライアントのブラウザは受け取ったHTML文字列を解釈して絵や文字をレンダリングする(この時、HTMLの中にスクリプトが埋め込まれていれば、スクリプトを実行する)

受け取ったHTML文字列をクライアント側では書き換える事ができず、表示を変えたければサーバに新たにデータを要求して受け取る必要がありました。
しかし、JavaScriptを使う事で、サーバに新しくHTML文字列を要求しなくても、クライアントのブラウザ内で動的にHTML文字列を書き換える事ができるようになりました。この事をDOM操作と言います。

ここで、それぞれの攻撃の話に入ります。

反射型XSSはDOM操作を利用しない攻撃です。上記で述べた通り、DOM操作を利用しない場合、クライアントのブラウザで処理しているHTML文字列をクライアント側で書き換えることはできません。ですので、サーバに悪意あるスクリプトを含むHTML文字列を生成してもらう必要があります。そのためには不正な入力等で脆弱性を突き、サーバに悪意あるHTMLを生成してくれという要求(httpリクエスト)を投げる必要があります。サーバ側はその要求に応え悪意あるHTML文字列を返し、それがクライアントのブラウザで実行されることで攻撃が成立します。しかし、当然、この通信はサーバ側で検知することが可能であり、悪意ある要求も、生成された悪意あるスクリプトも見つけて対処することが可能です。

次にDOM-based XSSですが、サイト内でDOM操作をするスクリプトが埋め込まれたページがあり、そこに脆弱性がある場合、DOM操作している部分に不正な入力を行ったりする事で脆弱性を突き、クライアントのブラウザで処理しているHTML文字列をクライアント側で好きに改変して悪意あるスクリプトを生成する事が可能です。この場合、クライアントが自力でHTMLを書き換えてしまうので、サーバには何も要求する必要が無く、クライアント内で全て完結してしまいます。ですので、サーバ側で検知することは困難であり、悪意あるスクリプトの実行を止める事もサーバ側からは難しいです。

まとめると、DOM-based XSSは、サーバからのレスポンスによって不正なスクリプトを生成するわけではなく、クライアントのブラウザ内で不正なスクリプトを生成するので、公式解答にある通り、DOM-based XSSの脆弱性を突いた攻撃では、サーバからのレスポンスに違いは出ません

2020.09.13 22:39
なるうさん(No.3)

グルタミンさん詳細なご説明ありがとうございます!
スッと理解できました!助かりました。

2020.09.13 23:41

【返信投稿用フォーム】

お名前(10文字以内)

顔アイコン


本文(2,000文字以内)

記事削除用パスワード(20文字以内)

プレビュー

※宣伝や迷惑行為を防止するため当サイトとIPAサイト以外のURLを含む記事の投稿は禁止されています。

投稿記事削除用フォーム

投稿No. パスワード 
© 2014-2020 情報処理安全確保支援士ドットコム All Rights Reserved.

Pagetop