HOME»情報処理安全確保支援士掲示板»令和5年秋期 午後試験【問1】
投稿する
特殊文字をエスケープするのと悩んだのですが…
セッションハイジャックの対策にはなる気がしますが、XSS自体の対策にはならないと思います
たしかに、、。おっしゃる通りここで聞かれてるのはXSS脆弱性についてですね。
ありがとうございます!!
»[1277] 令和5年秋期 午後試験【問3】 投稿数:30
»[1276] 令和5年秋期 午後試験【問4】 投稿数:240
令和5年秋期 午後試験【問1】 [1279]
管理人(No.1)
令和5年秋期 午後試験【問1】についての投稿を受け付けるスレッドです。
2023.10.08 00:31
roさん(No.2)
自分の回答です
設問1
(1) イ
(2) HTMLにおける特殊文字をエスケープして表示する。
設問2
レビュータイトル中のスクリプト間のHTMLをコメントアウトし、繋げて1つのスクリプトにしている。
設問3
(1) ブラウザに保存してあるCookieを取り出し、ページ中のトークンを使って、Cookieをアイコン画像として登録する。
(2) レビューページ中に表示されるアイコン画像に対応するimgタグのsrc属性のURLにアクセスする。
(3) WebアプリQで、他のユーザになりすまして、購入やレビューの投稿が出来る。
設問4
同一生成元ポリシーにより、プロフィール設定ページ中のトークンを読み取れない。
設問1
(1) イ
(2) HTMLにおける特殊文字をエスケープして表示する。
設問2
レビュータイトル中のスクリプト間のHTMLをコメントアウトし、繋げて1つのスクリプトにしている。
設問3
(1) ブラウザに保存してあるCookieを取り出し、ページ中のトークンを使って、Cookieをアイコン画像として登録する。
(2) レビューページ中に表示されるアイコン画像に対応するimgタグのsrc属性のURLにアクセスする。
(3) WebアプリQで、他のユーザになりすまして、購入やレビューの投稿が出来る。
設問4
同一生成元ポリシーにより、プロフィール設定ページ中のトークンを読み取れない。
2023.10.08 15:42
吉野順平さん(No.3)
私の解答です
設問1
(1)イ
(2)レビューを出力する前にエスケープ処理するという対策
設問2
各レビューに「/*」と「*/」を含むスクリプトを入力文字制限を超えない長さで投稿するという方法
設問3
(1)スクリプトを実行した会員のCookieをその会員のアイコン画像としてアップロードするという処理
(2)スクリプトを実行した会員が投稿したレビューの左に表示されるアイコン画像を読み取って情報を取得する。
(3)他の会員のクレジットカード情報の窃取や、他の会員のアカウントでの商品の購入
設問4
他のオリジンのリソースへのアクセスをWebブラウザが制限する仕組み
roさんの解答と比較すると、私の解答にところどころ粗があって悔しい!!
設問1
(1)イ
(2)レビューを出力する前にエスケープ処理するという対策
設問2
各レビューに「/*」と「*/」を含むスクリプトを入力文字制限を超えない長さで投稿するという方法
設問3
(1)スクリプトを実行した会員のCookieをその会員のアイコン画像としてアップロードするという処理
(2)スクリプトを実行した会員が投稿したレビューの左に表示されるアイコン画像を読み取って情報を取得する。
(3)他の会員のクレジットカード情報の窃取や、他の会員のアカウントでの商品の購入
設問4
他のオリジンのリソースへのアクセスをWebブラウザが制限する仕組み
roさんの解答と比較すると、私の解答にところどころ粗があって悔しい!!
2023.10.08 15:53
aaaさん(No.4)
(2)について、HTTPonly属性を付与にする。だと対策にならないんですかね??
特殊文字をエスケープするのと悩んだのですが…
特殊文字をエスケープするのと悩んだのですが…
2023.10.08 15:59
anonymousさん(No.5)
1
(1) イ
(2) 投稿内容をhtmlエスケープし、実行されないようにする。(28文字)
2 スクリプトを分割し、複数回に分けて送信し、余分な文字列をコメントとして処理させる方法。(43文字)
3
(1) 利用者のクッキーの情報をコンテンツとしたファイルをアップロードし、利用者のアイコンとして登録する処理。(51文字)
(2) サイトをクローリングし利用者のアイコンのURLを収集、それをダウンロードし文字列として解釈する方法。(50文字)
(3) セッションハイジャックを行い、不正購入や個人情報の奪取をすること。(33文字)
4 異なるドメインのクッキーがjavascriptから取得できない仕組み。(35文字)
(1) イ
(2) 投稿内容をhtmlエスケープし、実行されないようにする。(28文字)
2 スクリプトを分割し、複数回に分けて送信し、余分な文字列をコメントとして処理させる方法。(43文字)
3
(1) 利用者のクッキーの情報をコンテンツとしたファイルをアップロードし、利用者のアイコンとして登録する処理。(51文字)
(2) サイトをクローリングし利用者のアイコンのURLを収集、それをダウンロードし文字列として解釈する方法。(50文字)
(3) セッションハイジャックを行い、不正購入や個人情報の奪取をすること。(33文字)
4 異なるドメインのクッキーがjavascriptから取得できない仕組み。(35文字)
2023.10.08 16:01
anonymousさん(No.6)
> (2)について、HTTPonly属性を付与にする。だと対策にならないんですかね??
特殊文字をエスケープするのと悩んだのですが…
セッションハイジャックの対策にはなる気がしますが、XSS自体の対策にはならないと思います
2023.10.08 16:02
aaaさん(No.7)
> セッションハイジャックの対策にはなる気がしますが、XSS自体の対策にはならないと思います
たしかに、、。おっしゃる通りここで聞かれてるのはXSS脆弱性についてですね。
ありがとうございます!!
2023.10.08 16:07
ビンゴさん(No.8)
設問1
(1) ァ
(2) レビューをHTMLに出力する際エスケープ処理を行う
設問2
レビューを複数のレビュータイトルとレビュー詳細に分割して登録しHTMLへ出力する。
設問3
(1) レスポンスからトークンを取り出し、Cookieを含んだ画像を生成しecoサイトへアップロードする。
(2) HTMLに出力されているアイコン画像のURLにアクセスし情報を取得する
(3) クレジットカード情報を登録する画面へアクセスできる。
設問4
WebアプリQと異なるオリジンである攻撃者サイトのスクリプトは実行されない
みなさん大体同じですねー
(1) ァ
(2) レビューをHTMLに出力する際エスケープ処理を行う
設問2
レビューを複数のレビュータイトルとレビュー詳細に分割して登録しHTMLへ出力する。
設問3
(1) レスポンスからトークンを取り出し、Cookieを含んだ画像を生成しecoサイトへアップロードする。
(2) HTMLに出力されているアイコン画像のURLにアクセスし情報を取得する
(3) クレジットカード情報を登録する画面へアクセスできる。
設問4
WebアプリQと異なるオリジンである攻撃者サイトのスクリプトは実行されない
みなさん大体同じですねー
2023.10.08 16:11
あしさん(No.9)
設問1(2)はエスケープとHttpOnlyで悩んで、レビューコメントの顔文字が既にエスケープされていることから後者で記述。
顔文字だけエスケープされていたのがよくわかってないです。レビュータイトルはエスケープ処理がなく、レビュー詳細にはエスケープ処理が入っていたということなんですかねえ。
顔文字だけエスケープされていたのがよくわかってないです。レビュータイトルはエスケープ処理がなく、レビュー詳細にはエスケープ処理が入っていたということなんですかねえ。
2023.10.08 17:55
DBNWさん(No.10)
特定のフォームにだけ脆弱性がある、というのは実際でも良くあるケースです。
この場合は「レビュータイトルの値に対してサニタイズを施す。」が本命でしょう。
なお、他の解答候補として「レビュー投稿時点で入力値のバリデーションを行う。」というのも考えましたが、その方法(だけ)では今回のように既にXSSを埋め込んだレビューが存在する場合には対応できないと考えて候補から外しました。
この場合は「レビュータイトルの値に対してサニタイズを施す。」が本命でしょう。
なお、他の解答候補として「レビュー投稿時点で入力値のバリデーションを行う。」というのも考えましたが、その方法(だけ)では今回のように既にXSSを埋め込んだレビューが存在する場合には対応できないと考えて候補から外しました。
2023.10.08 18:55
anonymousさん(No.11)
設問1(2) CSPを設定すればXSSの実行を防止できる気がしますが、これは答えにならないのでしょうか?
2023.10.08 19:52
aaaさん(No.12)
自分の回答です。ニュアンスが若干みなさんと異なる、、、汗
設問1
(1)イ
(2)webアプリQにHTTPOnly属性を付与する(誤り)
設問2
スクリプトタグで囲んだ複数行のスクリプトを50文字以内で分割して投稿する(誤り)
設問3
(1)cookieをファイルコンテンツに設定し、アイコン画像としてアップロードする
(2)レビューページのHTMLからアイコン画像に設定されているセッションIDを取得する
(3)クレジットカード情報を登録するページから情報を盗む
設問4
クロスドメイン制約により、cookieに設定されているセッションIDが送出されないため
設問1
(1)イ
(2)webアプリQにHTTPOnly属性を付与する(誤り)
設問2
スクリプトタグで囲んだ複数行のスクリプトを50文字以内で分割して投稿する(誤り)
設問3
(1)cookieをファイルコンテンツに設定し、アイコン画像としてアップロードする
(2)レビューページのHTMLからアイコン画像に設定されているセッションIDを取得する
(3)クレジットカード情報を登録するページから情報を盗む
設問4
クロスドメイン制約により、cookieに設定されているセッションIDが送出されないため
2023.10.08 19:56
ふふさん(No.13)
設問2は
開発者ツールを起動してHTMLの文字数制限の属性を削除してから投稿する
みたいなこと書いたんですけどダメそうですかね。
開発者ツールを起動してHTMLの文字数制限の属性を削除してから投稿する
みたいなこと書いたんですけどダメそうですかね。
2023.10.08 20:00
もりさん(No.14)
説明2は、フロンドだけの文字数制限なのか、バックエンドでもValidationをしているかは、読み取れませんでしたが、図3のHTMLで、scriptが分割して登録されているので、分割して登録云々で回答するのが正しそうですね。
2023.10.08 20:31
kkさん(No.15)
ところどころ説明が変になってしまった
部分点くれー
1
(1)イ
(2)レビュータイトル内の記号を記号を示す別の文字列に置き換える。
2
スクリプトのあとにコメントの開始を示す文字列を入れて、次のスクリプトの前にコメント終了の記号を入れる方法。
3
(1)払い出されたトークンとCookieを取得してCookieをアイコン画像としてトークンとして一緒にアップロードする。
(2)レビューページの会員アイコン画像を保存してテキストとして開いて取得する方法。
(3)セッションIDが示す別の会員になりすましてECサイトにアクセスすること。
4
Webブラウザに保存された別ドメインのCookieの読み込みを禁止しているから。
部分点くれー
1
(1)イ
(2)レビュータイトル内の記号を記号を示す別の文字列に置き換える。
2
スクリプトのあとにコメントの開始を示す文字列を入れて、次のスクリプトの前にコメント終了の記号を入れる方法。
3
(1)払い出されたトークンとCookieを取得してCookieをアイコン画像としてトークンとして一緒にアップロードする。
(2)レビューページの会員アイコン画像を保存してテキストとして開いて取得する方法。
(3)セッションIDが示す別の会員になりすましてECサイトにアクセスすること。
4
Webブラウザに保存された別ドメインのCookieの読み込みを禁止しているから。
2023.10.08 20:59
たけさん(No.16)
大外しはしてないと思いたい
あとは文意をどう取られるか。。
1
(1) イ
(2) レビュータイトル欄は<>をHTMLエンティティ化して出力する
2 レビューを多数投稿しレビュータイトル欄の間はコメント化することにより長いスクリプトとして動いた
3
(1) 投稿に必要なトークンを受取り、クッキー内容をファイルオブジェクト化し、自分のアイコン画像データとして投稿する
(2) 他のレビュー投稿者のアイコン画像URLをリクエストして取得する
(3) 他の会員としてログイン状態でアクセスできるので勝手に商品購入などできる
4 違うオリジンなのでWebアプリQのクッキーは送信されず、攻撃は成り立たない
あとは文意をどう取られるか。。
1
(1) イ
(2) レビュータイトル欄は<>をHTMLエンティティ化して出力する
2 レビューを多数投稿しレビュータイトル欄の間はコメント化することにより長いスクリプトとして動いた
3
(1) 投稿に必要なトークンを受取り、クッキー内容をファイルオブジェクト化し、自分のアイコン画像データとして投稿する
(2) 他のレビュー投稿者のアイコン画像URLをリクエストして取得する
(3) 他の会員としてログイン状態でアクセスできるので勝手に商品購入などできる
4 違うオリジンなのでWebアプリQのクッキーは送信されず、攻撃は成り立たない
2023.10.09 07:25
とむさん(No.17)
1(1)は、イが多数派ですね。
アって書いちゃいました(泣
アって書いちゃいました(泣
2023.10.09 17:01
げんきさん(No.18)
問1(1)はサーバを返さずともスクリプトを実行できてしまうDom based型のXSSであってますよ!
2023.10.10 23:51
げんきさん(No.19)
なので答えはアです!
2023.10.10 23:52
問1と問さん(No.20)
イですよ。
レビュー一覧の情報はサーバからのレスポンスです。
レビュー一覧の情報はサーバからのレスポンスです。
2023.10.11 07:47
吉野順平さん(No.21)
サーバを介さずにどうやって別の会員(攻撃者)が投稿した商品レビューを画面に表示するんですかね?
2023.10.11 10:19
va-ssさん(No.22)
4については、
Same originポリシーと、
cookieが異なるドメインなので読みこまれない
のどっちかで迷って結局後者を書いてしまいましたが、TAC、itecの解答例は前者でしたね…
別解としてはありなんでしょうか…?
Same originポリシーと、
cookieが異なるドメインなので読みこまれない
のどっちかで迷って結局後者を書いてしまいましたが、TAC、itecの解答例は前者でしたね…
別解としてはありなんでしょうか…?
2023.10.12 21:20
太郎さん(No.23)
1-(2)はこんなカスみたいな実装のサイトは絶対他に粗があるからとりあえずサ終するって書きたかった。。。
実際にはサニタイズとアップロードされたcookieの画像の削除って書いたんですよね。
cookieの画像の削除はXSSの対策ではないか...なんかサービスしてくれないかな
実際にはサニタイズとアップロードされたcookieの画像の削除って書いたんですよね。
cookieの画像の削除はXSSの対策ではないか...なんかサービスしてくれないかな
2023.10.13 01:37
その他のスレッド
»[1278] 令和5年秋期 午後試験【問2】 投稿数:124»[1277] 令和5年秋期 午後試験【問3】 投稿数:30
»[1276] 令和5年秋期 午後試験【問4】 投稿数:240