令和6年秋の過去問の問3の解説をします。
題材はクレジットカード情報の漏えいです。
ECMAScriptを用いたクレジットカード決済サービスの脆弱性を問われます。
では早速解説に移ります。
【情報処理安全確保支援士 オススメ書籍】
セキュリティについてが細かく解説されています。
テキストで学習した後すぐに問題を解ける構成になっているので効率よく勉強できます。
また午後問題もいくつか掲載されていて、解説までついてきます。
ダウンロード特典もあるので非常にオススメの一冊!!
【情報処理安全確保支援士 オススメ書籍】
午後試験に関してはこの『重点対策』が一番だと思います。
試験の解き方から勉強方法、セキュリティについての細かい解説が紹介されています。
午後対策で迷ったらまずはこの1冊を手にとって勉強してみることをおすすめ!
問1
a~e
a:5
b:クロスサイトスクリプティング
c:格納
d:2
e:SQLインジェクション
怪しいリクエストを確認すると、まず行番号5に<script>が埋め込まれて、これはクロスサイトスクリプティングだと想定することができます。
偽フォームの表示はクロスサイトスクリプティングで可能なため、a,bはそれぞれこの解答が当てはまります。
cについては、リクエストURIに格納するため「格納」型となります。
次にRさんとGさんの会話から、d,eはDBサーバに関連する攻撃だと予測できます。
DBサーバへの攻撃としてSQLインジェクションが当てはまります。
行番号としてはSQLが埋め込まれている「2」が怪しいです。
なので、解答としてd,eはそれぞれ「2」、「SQLインジェクション」となります。
問2
(1)書き換え後の画面

クレジットカード情報を表示する画面が2回表示されたということから、支払い方法選択画面でクレジットカード情報を入力する欄が表示されたと予測できます。
図2と図3から配送先・支払い方法選択画面の「div.order_paymentのradio」クラスに図2のファイルKのHTMLが埋め込まれるコードが記載されています。
なので、お支払い方法のラジオボタンがクレジットカード情報を入力する欄に変わっていている画面を図示します。
(2)パラメータ名とその値
パラメータ名:order[Payment]
値:1
パラメータ名はname属性の値で、その値はvalueの値になるので、クレジットカード決済はorder[Payment]パラメータに1をセットした値になります。
(3)図2の4~15行目の処理内容
addEventListenerメソッドで配送先・支払い方法選択画面のform要素にイベントリスナーを登録し、submit時にクレジットカード情報をクエリパラメータとしてi-sha.comに送信する
問3
(1)攻撃者のWebサーバでクレジットカード情報を取得する方法
WebサーバのアクセスログのリクエストURIから情報を取得する
クレジットカード情報はURI上に埋め込まれているため、アクセスログさえ閲覧できれば取得は可能となる。
(2)f
配送先・支払い方法選択画面にアクセスしたアカウント名
アプリケーションログにはアカウント名が記録されるため、被害者を特定することができる。
まとめ
ECMAScriptが出題された問題でしたが、よく読めば分かるプログラムとなっています。
またプログラムを読み解くだけではなく、脆弱性や攻撃者のクレジットカード情報取得方法なども問われているため、幅広い知識が必要な問題です。
良問なので、こちらの問題を理解して実力を上げましょう!
関連記事



コメント