戦国IT - 情報処理技術者試験の過去問対策サイト
ブログお知らせお問い合わせ料金プラン

情報処理安全確保支援士 2012年 春期 午後1 問02


Webアプリケーションのセキュリティ対策に関する次の記述を読んで、設問1~3に答えよ。

 O社は従業員数20名のインターネット通販会社であり、通販サイト(以下、Xサイトという)で会員向けに化粧品を販売している。XサイトはO社が開発し、運用している。  ある日、会員からの問合せがあり、Xサイトで管理している会員の個人情報が流出していることが判明した。O社は、被害拡大防止のためにXサイトを一旦停止した上で、流出件数、原因などを明らかにするために、情報システム担当者であるVさんから、セキュリティ専門会社D社のS氏に調査を依頼した。  S氏は、VさんからXサイトのシステム構成を聞いた後、関係するログを調査した。Xサイトでは、会員ID及びパスワードを、データベースのm_userテーブルのcust_id及びpwdという列にそれぞれ格納しており、ログイン機能(login.cgiプログラム)ではcid、pwという引数とデータベースに格納されている値を照合している。表1は、WebサーバのHTTPアクセスログのうち不正アクセスに関連する部分の抜粋であり、左から順に、便宜上付けた番号、クライアントのIPアドレス、HTTPのアクセスメソッド、cgiプログラム名、クエリ文字列である。   〔調査結果〕  S氏が表1のHTTPアクセスログを調査した結果、次の攻撃が判明した。  ・攻撃1:IPアドレスがaの攻撃者が、b.cgiに対しSQLインジェクションによって全会員分に当たる約8,000件の会員ID及びパスワードを窃取していた。  ・攻撃2:SQLインジェクションによってXサイトのデータが改ざんされ、その後アクセスした会員のPCにマルウェアを強制的にダウンロードさせられていた。(表1中の20番)  ・攻撃3:SQLインジェクションによってデータが改ざんされ、会員ID及びパスワードを詐取されていた。(表1中の22番)  ・攻撃4:不正ログインを試行されていた。    S氏は、調査結果をVさんに説明した。次は、そのときの会話の一部である。    Vさん:攻撃2ですが、IPアドレスがipJの攻撃者(以下、攻撃者ipJという)によって、画面の一部であるバナーとして表示されるデータ(ban_url)が改ざんされていたということですね。Xサイトにアクセスした一部の会員から“ウイルス対策ソフトが警告を表示する”という問合せがあったのは、それが原因ですね。  S氏 :はい。会員が、改ざんされたデータを含む画面に表示された“重要なお知らせ”をクリックすると、攻撃者ipJが用意した外部サイトに誘導されて、ブラウザが誘導先ページのコンテンツと一緒に、不正な動作を引き起こすファイルをダウンロードします。それから、そのファイルが、ブラウザのcで処理される過程で、ブラウザのcの脆弱性を突くコードを実行することで、PCが感染し、その後、別のファイルがダウンロードされます。もし途中でPCのウイルス対策ソフトが検知、駆除しなければ、最終的にはキーロガーとして存在していました。
情報処理安全確保支援士試験(平成24年度 午後1 問02 表01) ↩設問1(3)
 Vさん:なるほど。では、攻撃3についても説明をお願いします。  S氏 :攻撃3も同じくデータ改ざんによるものですが、攻撃2の後しばらくしてから攻撃を受けており、①攻撃1とは異なる手口で会員IDとパスワードの詐取が試みられていました。    続いてS氏はVさんに、攻撃3の具体的な手口や攻撃4のログの特徴についても説明した。   〔パスワード格納方法の検討〕  S氏はVさんに、HTTPアクセスログの調査結果から判明した不正アクセスについて説明した後、SQLインジェクションに関係していたm_userテーブルを調査して気付いたことを指摘した。次は、そのときの会話である。    S氏 :m_userテーブルを見ていて気付いたのですが、パスワードは暗号化されていますよね。どのような暗号アルゴリズムで暗号化しているのですか。  Vさん:暗号アルゴリズムは自作しました。例えば、元の文字列がpasswordの場合、まず、d式暗号でdrowssapに変換し、次に、e式暗号でespxttbqに変換します。  S氏 :そのアルゴリズムは変更すべきです。CRYPTREC(暗号技術評価プロジェクト)が電子政府推奨暗号リストに公開している暗号アルゴリズムと異なり、自作アルゴリズムは、fについて公的な機関の評価を受けていないので推奨できません。  Vさん:なるほど。それでは、修正を検討します。  S氏 :それから、攻撃者が何度も会員登録した上で、攻撃者の指定したパスワードとそれに対する暗号文から解読するg攻撃によって会員のパスワードを解読された可能性が高いので、サイトの再開前に全会員のパスワードを初期化し、初期化する前のパスワードへの変更を禁止すべきです。  Vさん:承知しました。会員にはパスワードを初期化したことを通知します。  S氏 :それだけではなく、②初期化する前のパスワードが解読されている可能性が高いことも通知してください。
 その他、S氏はVさんに、改ざんされたデータの復旧方法や攻撃に対するプログラムの修正方法などを説明した。  O社は、S氏の指摘に従って、被害の状況や再発防止策などの情報を自社のWebサイトで公表した。その後、プログラム修正、パスワードの格納方法の改善などの対策を完了させ、全会員のパスワードを初期化して会員に連絡した上で、Xサイトを再開させた。

設問1:〔調査結果〕について、(1)~(3)に答えよ。

問題文を見る
(1)本文中のaに入れるIPアドレスを一つ答えよ。

模範解答

a:ipH

解説

解答の論理構成

  1. 攻撃1の条件を整理
    • 【問題文】には「攻撃1:IPアドレスがaの攻撃者が、b.cgiに対しSQLインジェクションによって全会員分に当たる約8,000件の会員ID及びパスワードを窃取していた。」とあります。
    • したがって、(i) SQLインジェクションで (ii) “会員ID及びパスワード” の両方を取り出すクエリを (iii) 同じIPから実行している行を探します。
  2. HTTPアクセスログから該当行を抽出
    • 番号「21」には
      「ipH GET search.cgi item=gf12' union select cust_id, pwd, null, null from m_user where '1' = '1'&kind=09」
      が記録されています。
    • このクエリはunion select cust_id, pwd ... によってm_userテーブルから “cust_id” と “pwd” の両列を取得しており、条件(i)(ii)を満たします。
  3. 他の候補行との比較
    • 番号「7」は「ipC」がand select cust_id, pwd, null, null ... を実行していますが、同IP「ipC」は番号「18」で <script> を埋め込むXSSも行っており、攻撃3(「異なる手口」)の流れと符合します。
    • 番号「12」「17」は “pwd” のみ、または “cust_id” のみを取得しているため、会員IDとパスワードを同時に窃取した条件(ii)を満たしません。
    • よって、条件を同時に満たすのはIP「ipH」のみです。
  4. 以上から、a に入るIPアドレスは「ipH」と結論付けられます。

誤りやすいポイント

  • 「cust_idとpwdの両方」を取得しているかどうかを見落とす
  • union selectとand selectの違いを軽視し、テスト的なクエリ(番号7)を攻撃本番と誤認する
  • XSSや改ざんのログ(番号18, 22)とSQLインジェクションによる情報窃取を混同する

FAQ

Q: 「and select」でもデータは取得できるのでは?
A: 条件式として使われるand selectは構文エラーになる可能性が高く、一般にテーブル結合のunion selectの方が大量取得に適しています。ログ全体の流れから、本番の窃取はunion句のある「ipH」と判断できます。
Q: 8000件という大量データを1リクエストで抜けるのか?
A: union selectで全行を返す結果セットを生成し、Webアプリがそのまま画面やCSVに出力すると1要求でも窃取可能です。
Q: なぜipCを攻撃1としないのか?
A: ipCはXSS(番号18)の痕跡があり、問題文では「攻撃1とは異なる手口」として後続攻撃を説明しています。異なる攻撃種別を同一IPが実行したとは読み取りにくいことからipCは除外します。

関連キーワード: SQLインジェクション、union select, HTTPアクセスログ、情報漏えい分析、クエリパラメータ

解説を読んでも分からないところは、AIに質問できます。 この問題の本文と解説をふまえて答えます。

この設問をAIに質問する

クイズモードで開きます(AIへの質問は無料の会員登録で使えます)

設問1:〔調査結果〕について、(1)~(3)に答えよ。

問題文を見る
(2)本文中のbに入れるcgiプログラム名を7字以内で答えよ。

模範解答

b:search

解説

解答の論理構成

  1. 【問題文】には「攻撃1:IPアドレスがaの攻撃者が、b.cgiに対しSQLインジェクションによって全会員分に当たる約8,000件の会員ID及びパスワードを窃取していた。」とあります。
  2. どのCGIが大量の会員IDとパスワードを引き出せるほどのSQLを実行されたかを、表1のHTTPアクセスログから特定します。
  3. 会員情報を取得するSQLインジェクションが実行されている行を抜粋すると、
    • 「7 ipC GET search.cgi item=gf34' and select cust_id, pwd, null, null from m_user where '1' = '1'&kind=09」
    • 「21 ipH GET search.cgi item=gf12' union select cust_id, pwd, null, null from m_user where '1' = '1'&kind=09」
      と記録されています。どちらもsearch.cgiに対してcust_id, pwdを取得する攻撃SQLが送られています。
  4. 表1には、他のCGI(login.cgi, confirm.cgiなど)もありますが、cust_id, pwdを直接抽出するクエリはsearch.cgiにのみ出現します。
  5. よって、攻撃1で標的となったCGIプログラム名 b は「search」であると導けます。

誤りやすいポイント

  • login.cgiは不正ログイン(攻撃4)の痕跡が目立つため、誤って選択しやすいです。しかしSQLインジェクションでcust_id, pwdを抜き出す記録はありません。
  • confirm.cgiの「../ls」や <script> を含むリクエストに目を奪われてしまい、SQLインジェクション対象を取り違えるケースがあります。
  • program名には拡張子 .cgiを含めず7文字以内で解答する指定を見落とし、「search.cgi」と書いて失点することがあります。

FAQ

Q: SQLインジェクションは検索機能だけが狙われるのですか?
A: いいえ、入力値を直接SQLに連結する実装であれば、ログイン・登録などあらゆる機能が標的になり得ます。本問では検索機能search.cgiが脆弱でした。
Q: 「cust_id, pwd」を抜くクエリなのに攻撃者はなぜsearch.cgiを選んだのですか?
A: 検索機能は自由入力の文字列をそのまま WHERE 句に結合しやすく、インジェクションポイントが多いため狙われやすいです。
Q: .cgiを含めると不正解になりますか?
A: 設問が「bに入れるcgiプログラム名を7字以内で答えよ」と明示しているため、拡張子を除いた「search」と記述する必要があります。

関連キーワード: SQLインジェクション、HTTPアクセスログ、CGI, データ漏えい、入力値検証

解説を読んでも分からないところは、AIに質問できます。 この問題の本文と解説をふまえて答えます。

この設問をAIに質問する

クイズモードで開きます(AIへの質問は無料の会員登録で使えます)

設問1:〔調査結果〕について、(1)~(3)に答えよ。

問題文を見る
(3)表1に示されているIPアドレスipBによる攻撃は、ログを調査した結果、ある特徴から不正ログインの試行と判明した。その特徴について35字以内で述べよ。また、その不正ログイン試行対策を35字以内で述べよ。

模範解答

特徴:同一IPアドレスから、一つの会員IDに対して様々なパスワードでログインを試みている。 対策:連続してログインに失敗した時は、その会員IDをロックする。

解説

解答の論理構成

  • 【問題文】の表1には、同一クライアント “ipB” からlogin.cgiへ繰り返しアクセスしている行が複数存在します。
    例:
    ・「番号“2” IP“ipB” cid=cust51 pw=password」
    ・「番号“4” IP“ipB” cid=cust51 pw=pass」
    ・「番号“5” IP“ipB” cid=cust51 pw=cust51」
    ・「番号“6” IP“ipB” cid=cust51 pw=」
    ・「番号“8” IP“ipB” cid=cust51 pw=15tsuc」
    ・「番号“9” IP“ipB” cid=cust51 pw=a」
    ・「番号“10” IP“ipB” cid=cust51 pw=b」
    ・「番号“11” IP“ipB” cid=cust51 pw=c」
    ・「番号“13” IP“ipB” cid=cust51 pw=d」
  • いずれもcidが「cust51」で固定されている一方、pwの値だけが次々と変化しています。
  • このように「同一IPから、特定の会員IDに対して異なるパスワードを大量に試す」行為は、パスワード総当たりを狙った不正ログイン試行(ブルートフォース攻撃)の代表的特徴です。
  • 対策としては、連続して認証に失敗したIDに対し、一定時間ログインを禁止(アカウントロック)する設定を導入すれば、無制限な試行を封じられます。

誤りやすいポイント

  • 「IPが同じなら全部攻撃」と短絡し、cidの変化を見落としてしまう。実際にはcidが固定でpwだけが変わるところが本質です。
  • 「パスワード入力欄が空(番号“6”)」を見てSQLインジェクションと勘違いするケース。ここではインジェクションではなく総当たりの一手段です。
  • 対策を“CAPTCHAを表示する” などと書いてしまい、直接的にパスワード試行回数を抑止できない点を指摘され減点となりがちです。

FAQ

Q: IPが変わった場合でも同じIDへの試行が続けば不正と判断できますか?
A: できます。ただし今回の設問は「同一IP」を鍵にしているので、解答ではその点を強調します。複数IPからの攻撃も想定し、ID基準のロックを併用するとより安全です。
Q: ロック時間はどの程度が適切ですか?
A: システム利用状況によりますが、数分〜数十分が一般的です。長すぎると正規ユーザの利便性を損ない、短すぎると攻撃抑止効果が下がります。
Q: アカウントロック以外に取るべき追加策は?
A: パスワード強度の向上、多要素認証の導入、アクセス元IPのレートリミット、ログ監視と即時アラートなどを組み合わせると防御力が高まります。

関連キーワード: ブルートフォース、アカウントロック、アクセスログ、認証制御

解説を読んでも分からないところは、AIに質問できます。 この問題の本文と解説をふまえて答えます。

この設問をAIに質問する

クイズモードで開きます(AIへの質問は無料の会員登録で使えます)

設問2:〔パスワード格納方法の検討〕について、(1)、(2)に答えよ。

問題文を見る
(1)本文中のd〜gに入れる字句をそれぞれ解答群の中から選び、記号で答えよ。
解答群  ア:DoS  イ:Exploit  ウ:安全性  エ:換字  オ:サイドチャネル  カ:辞書  キ:市場性  ク:選択平文  ケ:誕生日  コ:転置  サ:分散性

模範解答

d:コ e:エ f:ウ g:ク

解説

解答の論理構成

  1. d
    • 引用: 「まず、d式暗号でdrowssapに変換」
    • “password”→“drowssap”は文字列を逆順に並べ替える操作であり、暗号学では並べ替えを行う方式を「転置式暗号」と呼びます。
    • 解答: コ「転置」
  2. e
    • 引用: 「次に、e式暗号でespxttbqに変換」
    • “drowssap”→“espxttbq”は各文字を別の文字に置き換える方式で、これは「換字式暗号」です。
    • 解答: エ「換字」
  3. f
    • 引用: 「自作アルゴリズムは、fについて公的な機関の評価を受けていない」
    • 公的機関が評価するのはアルゴリズムの“安全性”であり、司法・市場性ではありません。
    • 解答: ウ「安全性」
  4. g
    • 引用: 「攻撃者の指定したパスワードとそれに対する暗号文から解読するg攻撃」
    • 攻撃者が自分で平文を選び、対応する暗号文を取得して解析する手法は「選択平文攻撃」です。
    • 解答: ク「選択平文」

誤りやすいポイント

  • 「転置」と「換字」を逆に覚えているとdとeを取り違える。並べ替え=転置、置き換え=換字と整理しましょう。
  • gで「辞書」攻撃と誤答しがちですが、問題文には“攻撃者が何度も会員登録した上で”とあり、自分で平文入力を選択できる点が決め手です。
  • fは「市場性」を連想してしまうことがありますが、CRYPTRECが評価する対象は暗号アルゴリズムの安全性です。

FAQ

Q: 転置式暗号と換字式暗号は現代でも使われていますか?
A: 基本形は歴史的意義が大きく、現代暗号として単独利用されることはありません。ただし転置・換字の考え方はブロック暗号内部構造(置換‐転置ネットワーク)に応用されています。
Q: 選択平文攻撃が可能になる典型的なケースは?
A: Webアプリでユーザが自由に入力できるデータを即暗号化して保存・表示する仕組みです。攻撃者は好きな文字列を入力し、その暗号文を取得して解析できます。
Q: 「安全性の評価を受けていない」暗号を使うと何が問題?
A: 脆弱性が見つかっても気付きにくく、短期間で解読されるリスクが高まります。また他社・他機関との相互運用性にも欠け、将来的な保守コストが増大します。

関連キーワード: 転置式暗号、換字式暗号、選択平文攻撃、暗号アルゴリズムの安全性、SQLインジェクション

解説を読んでも分からないところは、AIに質問できます。 この問題の本文と解説をふまえて答えます。

この設問をAIに質問する

クイズモードで開きます(AIへの質問は無料の会員登録で使えます)

設問2:〔パスワード格納方法の検討〕について、(1)、(2)に答えよ。

問題文を見る
(2)本文中の下線②について、初期化する前のパスワードへの変更を禁止する以外に、会員に通知する理由は何か。その理由を50字以内で述べよ。

模範解答

他のサイトで同じ会員ID、パスワードを使用している会員に対し、その変更を促す必要があるから

解説

解答の導き方

設問は「初期化する前のパスワードへの変更を禁止する以外に、会員に通知する理由は何か」を問います。問題文には「初期化する前のパスワードが解読されている可能性が高いことも通知してください」と明記されています。この記述から順を追って考えます。
  1. 本文の記述「初期化する前のパスワードが解読されている可能性が高いことも通知してください」は、攻撃者が元のパスワード(平文)を得る、あるいは得られる態勢にある可能性を示しています。
  2. 攻撃者が平文パスワードを入手できると、そのパスワードを用いて他のサービスで不正ログインを試みることが可能になります。実務上、多くの利用者が複数サイトで同じ会員ID及びパスワードを使い回しているため、このリスクは重大です。
  3. サイト内で「初期化する前のパスワードへの変更を禁止」する措置は、当該サイトで利用者が再び危険な(既知の)パスワードを設定することを防ぎますが、他サイトでの利用状況には影響を与えません。したがって利用者に対して、他サイトで同じ認証情報を使っている場合はそれらのパスワードを変更するよう促す必要があります。
  4. 以上より、通知すべき主目的は「他のサイトで同じ会員ID・パスワードを使用している会員に対し、それらのパスワードを変更するよう促すこと」であると導けます。

誤りやすいポイント

  • 「通知はサイトの再開理由の説明だけで良い」と考え、他サイトでのリスクを伝えない点。サイト内対策だけでは不十分です。
  • 「解読=辞書攻撃や総当たり攻撃」と早合点すること。本文が示すのは、選択した平文とその暗号文の対応を利用する手法(選択平文攻撃)です。
  • 「通知でウイルス対策ソフトの導入や細かい技術説明だけ伝えればよい」とし、具体的な行動(他サイトでのパスワード変更)を促さない点。
  • 「初期化前のパスワードが漏れていない前提」でユーザーに旧パスワードの再利用を許す運用にする点。

FAQ

Q: 本文の「解読された可能性が高い」とは具体的に何を意味しますか?
A: 攻撃者が暗号化方式を利用して元の平文を得た、または平文を特定できる状態になっている可能性が高いことを指します。本文は攻撃者が意図的にパスワードを登録して得た暗号文との対応を用いる攻撃を示唆しており、単なる辞書攻撃とは区別されます。
Q: 通知文では具体的に何を促せばよいですか?
A: 「初期化前のパスワードが漏洩または解読された可能性がある」ことを明示し、他のサイトで同じ会員ID及びパスワードを使用している場合は直ちにそれらのパスワードを変更するよう促すことが中心です。併せて多要素認証の利用や不審なログインの監視も推奨します。
Q: なぜサイト内でのパスワード変更禁止だけでは不十分なのですか?
A: サイト内で旧パスワードへの変更を禁止するのは当該サイトでの即時の再利用を防ぐためですが、利用者が他サイトで同じ認証情報を継続使用していれば、攻撃者はそれら他サイトを狙えて被害が拡大するためです。

関連キーワード: 選択平文攻撃、パスワード再利用、資格情報詰め合わせ攻撃、多要素認証、暗号アルゴリズムの評価

解説を読んでも分からないところは、AIに質問できます。 この問題の本文と解説をふまえて答えます。

この設問をAIに質問する

クイズモードで開きます(AIへの質問は無料の会員登録で使えます)

設問3:SQLインジェクションによるデータ改ざんについて、(1)、(2)に答えよ。

問題文を見る
(1)本文中のcに入れる字句を10字以内で答えよ。 なお、会員のPCのOS及びブラウザ本体への攻撃は実施されなかったものとする。

模範解答

c:プラグイン

解説

解答の論理構成

  1. 本文には
    「ブラウザが誘導先ページのコンテンツと一緒に、不正な動作を引き起こすファイルをダウンロードします。それから、そのファイルが、ブラウザのcで処理される過程で、ブラウザのcの脆弱性を突くコードを実行することで、PCが感染し…」
    とあります。
  2. さらに注記として「会員のPCのOS及びブラウザ本体への攻撃は実施されなかった」と明示されています。
  3. ブラウザ本体ではなく追加機能部分の脆弱性を突く典型例はFlash、Java、PDFビューアなどの「プラグイン」です。
  4. したがって c に入る語は「プラグイン」が最も適切です。

誤りやすいポイント

  • 「ブラウザ本体への攻撃は実施されなかった」という一文を読み落とし、ブラウザ や 拡張機能 などと書いてしまう。
  • 「アドオン」「拡張子」など似た語を選んでしまい、試験では不可となる。
  • SQLインジェクションの文脈に意識が向き過ぎて、後半のマルウェア感染フローを軽視しがち。

FAQ

Q: ブラウザの「プラグイン」と「アドオン」は同じ意味ではないのですか?
A: 広い意味では似ていますが、本問で狙われたのは外部ベンダが提供する実行モジュール(Flash Playerなど)を指す「プラグイン」です。アドオン全般を指すと範囲が曖昧になるため、設問は「プラグイン」で固定しています。
Q: OS・ブラウザ本体が無事なら、プラグインの脆弱性だけで感染するのですか?
A: はい。プラグインは独立した実行コードを含むため、プラグイン内の脆弱性を突けばOSカーネルやブラウザ本体を直接攻撃しなくてもマルウェアを実行できます。
Q: プラグイン攻撃を防ぐにはどうすれば良いですか?
A: 使わないプラグインを無効化し、残す場合でも最新版へ速やかに更新することが基本です。加えて、コンテンツを分離実行するブラウザ設定やEDR製品の導入が有効です。

関連キーワード: SQLインジェクション、ドライブバイダウンロード、プラグイン、脆弱性、パスワードリセット

解説を読んでも分からないところは、AIに質問できます。 この問題の本文と解説をふまえて答えます。

この設問をAIに質問する

クイズモードで開きます(AIへの質問は無料の会員登録で使えます)

設問3:SQLインジェクションによるデータ改ざんについて、(1)、(2)に答えよ。

問題文を見る
(2)本文中の下線①について、会員ID及びパスワードを詐取する方法を50字以内で具体的に述べよ。

模範解答

偽の入力画面を表示させ、そこに入力させた情報を攻撃者が用意したサイトに送信する。

解説

解答の論理構成

  1. 攻撃3の本質は、表示用データにJavaScriptを挿入して閲覧者側ブラウザで実行させることです。
    【問題文】の表1「22番」のクエリ文字列
    item=0b24';update m_contents set ban_url = ban_url || '><script type="text/javascript">document.write("<html>(省略)</html>");</script>
    は、update m_contents set ban_url = ... によりban_url列へ <script> タグを追記しています。
  2. <script type="text/javascript">document.write("…");</script> によって、攻撃者が用意したHTMLを「画面の一部」であるバナー領域に動的生成させます。これは会員が閲覧した際にブラウザ上で実行されるので、攻撃対象のPCではサーバ側ではなくクライアント側で改ざんページが表示されます。
  3. S氏の説明にある「①攻撃1とは異なる手口で会員IDとパスワードの詐取」という文言から、攻撃1(サーバ側のデータ直接窃取)とは違い、ユーザ入力を騙し取るクライアントサイド攻撃であると判断できます。
  4. JavaScriptにより「偽の入力画面(ログインフォームなど)」を生成し、action属性やAjax送信先を攻撃者サイトへ設定すれば、会員が入力したcust_idとpwdがそのまま外部へ送信されます。
  5. 以上より、設問の答えは「偽の入力画面を表示し、入力内容を攻撃者サイトへ送信する」と整理できます。

誤りやすいポイント

  • 「攻撃3=SQLインジェクションだからサーバ側での直接窃取」と早合点しがちですが、実際にはXSSを引き起こしてユーザを“釣る”方式です。
  • ログ22番のdocument.write() を単なるdefacementと誤読し、詐取手段を記述しないケースがあります。
  • 「入力フォームをメール送信」等と書くと、ブラウザから攻撃者サーバへ直接POSTさせる本来の流れを外してしまいます。

FAQ

Q: SQLインジェクションとXSSはどう結び付くのですか?
A: SQLインジェクションでデータベースの表示用列に <script> を格納し、その値をページに埋め込むことでXSSが発生します。攻撃3はまさにこの連携攻撃です。
Q: なぜJavaScriptを使う必要があるのですか?
A: JavaScriptで偽フォームを描画し送信先を自由に設定できるため、サーバを経由せず直接攻撃者に資格情報を渡せます。
Q: 表1の他のunion select系レコードと何が違うのですか?
A: union selectはデータ抽出目的ですが、22番はupdate ... set ... で“改ざん”し、抽出ではなく表示内容の書き換えを狙っています。

関連キーワード: SQLインジェクション、クロスサイトスクリプティング、フィッシング、JavaScript, 偽装フォーム

解説を読んでも分からないところは、AIに質問できます。 この問題の本文と解説をふまえて答えます。

この設問をAIに質問する

クイズモードで開きます(AIへの質問は無料の会員登録で使えます)

戦国ITクイズ機能

\ せっかくなら /

情報処理安全確保支援士を
クイズ形式で学習しませんか?

クイズ画面へ遷移する→

すぐに利用可能!

©︎2026 情報処理技術者試験対策アプリ

このサイトについてブログプライバシーポリシー利用規約特商法表記開発者について