情報処理安全確保支援士試験 過去問 令和5年 秋 午後問1

スポンサーリンク

問題はIPAからご確認ください。
https://www.ipa.go.jp/shiken/mondai-kaiotu/2021r03.html#aki_sc
答えはIPAの回答例となります。

設問1

(1)

問題 XSS脆弱性の種類を解答群の中から選び、記号で答えよ。
  ア:DOM Based XSS  イ:格納型XSS  ウ:反射型XSS

この3種類は攻撃コードがどこに保存され、実行されるかで分かれます

■DOM Based XSS (DOM XSS)
攻撃コードがサーバーと一切通信せず、ユーザーのブラウザ内で完結する XSS です。
攻撃者が、悪意のあるスクリプトを埋め込んだURLを作成し、被害者がそのURLをクリック、Webサイトにアクセスする。
ブラウザ内の JavaScript が、URLの特定部分を読み取り、DOMに不正に書き込んでしまい、スクリプトが実行される。
■格納型 XSS (Stored XSS)
攻撃者が、コメント欄や掲示板などに悪意のあるスクリプトを投稿し、サーバーに保存させる。
他のユーザーがそのページを閲覧すると、サーバーからスクリプトが読み込まれ、ユーザーのブラウザで実行される。
■反射型 XSS (Reflected XSS)
攻撃者が、悪意のあるスクリプトを埋め込んだ URL を作成し、被害者がその URL をクリックする。
Webサーバーは、その URL からスクリプトを読み取り、そのまま応答 HTML に含めて被害者のブラウザに返す。
被害者のブラウザでスクリプトが実行される。

今回は長いスクリプトが埋め込まれているとNさんが確認して気づいたので格納型となります。

答え:イ

(2)

問題 WebアプリQにおける対策を、30字以内で答えよ。

格納型 XSS を防ぐための最も基本的な対策は、「ユーザーの入力をそのまま出力しないこと」です。
出力時にHTMLの特殊文字をエスケープ処理する。
大体、XSSの対策と言ったらエスケープ処理が出てきます

答え:レビュータイトルを出力する前にエスケープ処理を施す

設問2

問題 図3について、入力文字数制限を超える長さのスクリプトが実行されるようにした方法を、50字以内で答えよ。

図3を確認すると、各タイトルレビューでコメントアウトを実施してます
「/*~~*/」
レビューを複数回行って、文字数の制限を回避しています

答え:HTMLがコメントアウトされ一つのスクリプトになるような投稿を複数回に分けて行った

設問3

(1)

問題 図4の6~20行目の処理の内容を、60字以内で答えよ。

内容は上記のようになっています
アクセスした会員のCookieやトークンを画像ファイルに偽装しアイコン画像として、指定のサイトへアップロードします

答え:XHRのレスポンスから取得したトークンとともに、アイコン画像としてセッションIDをアップロードする

(2)

問題 攻撃者は、図4のスクリプトによってアップロードされた情報をどのようにして取得できるか。取得する方法を、50字以内で答えよ。

図4のスクリプトだと取得したトークンとセッションIDをアイコン画像として「https:/□□□.co.jp/user/upload」へアップロードしています。
そしてアップロードが成功すると会員のプロファイルページやレビューページに表示されます。
なので、それをダウンロードしてファイルの中身を確認すれば良いですね

答え:会員のアイコン画像をダウンロードして、そこからセッションIDの文字列を取り出す。

(3)

問題 攻撃者が(2)で取得した情報を使うことによってできることを、40字以内で答えよ。

(2)でセッションIDを盗み出していますので、セッションIDを使ってできることです
基本はユーザになりすましてログインしますね

答え:ページVにアクセスした会員になりすまして,WebアプリQの機能を使う

設問4

問題 仮に、攻撃者が用意したドメインのサイトに図4と同じスクリプトを含むHTMLを準備し、そのサイトにWebアプリQのログイン済み会員がアクセスしたとしても、Webブラウザの仕組みによって攻撃は成功しない。この仕組みを、40字以内で答えよ。

ブラウザには同一生成元ポリシー(SOP:Same-Origin Policy)という機能があり、これはあるサイトで実行された JavaScript は、同じドメインのデータしか読み取れない」という機能です。
なので、仮に攻撃者のサイト「https://NISE.com/」に会員がアクセスして図4のスクリプトを実行して「https://□□□.com/user/profile」から情報を取得しに行っても、ドメインが違うため取得できません。
同様に「https://□□□.com/user/upload」へもアップロードは出来ないです。

答え:スクリプトから別ドメインのURLに対してcookieが送られない仕組み



コメント

タイトルとURLをコピーしました