図7のクエリを検索ページのリクエストにつけるとこうなる。部分で改行されてしまうのである。この部分はレスポンスヘッダではなくレスポンスボディとして処理されるので、スクリプトが実行されるという仕組みである。クロスサイトスクリプティング攻撃者がページにscriptを埋め込む攻撃方法をクロスサイトスクリプティングという。(3)「改行文字を除去する」など改行によって影響でないような変更であれば良いと思われる。設問3(1)これは、ログイン前に払い出されるセッションとログイン後に払い出されるセッションのIDが一緒であること(あるいはログイン前にセッションIDが払い出されてしまっていること)が後述のセッションフィクセーションの問題につながってきているので、見比べるべきは09行目または17行め(ログイン前のセッション)27行目(ログイン後のセッション)である。わかりづらい問題ではあるかなと思う。(3)セッションフィクセーションの問題で、攻撃者Jは利用者Kのアカウントになりすますことを目的としている。攻撃者Jが払い出したセッション01234を利用者KのCookieにセットした上で利用者Kにログインさせようというものである。ログイン前にセッションIDが払い出されており、かつログインした後もセッションIDが変わらないことを利用した攻撃手法である。SESSIONID=01234を付けたようなクエリを、脆弱性のある画面Cをつかって利用者Kに送り込む。これで利用者KはCookieのセッションIDが01234になってしまい。その後まんまとログインさせられてしまうわけである。攻撃者はセッションID01234を利用することで利用者KとしてこのWebシステムを利用できるようになる。(3)については上記で述べた通りである。(4)ログイン後に新しいセッションIDを払い出したり、あるいはログイン前にセッションIDが不要なのであれば払い出さないといった対策が考えられる。-*1:URLは一例。スポンサーをお願いしますブログを投稿したらX(twitter)でお知らせしています。