Internet Explorer の悪名高い Content-Type: 無視という仕様を利用すると、Atom や RDF/RSS を利用してXSSを発生できることがあります。条件的に対象となるWebアプリケーションは多くはないと思いますが、それでもいくつか該当するWebアプリケーションが実在することを確認しました。以下の例では Atom の場合について書いていますが RDF/RSS でも同様です。

例えば、http://example.com/search.cgi?output=atom&q=abcd という URL にアクセスすると、「abcd」という文字列の検索結果を Atom として返すCGIがあったとします。

GET /search.cgi?output=atom&q=abcd Host: example.com HTTP/1.1 200 OK Content-Type: application/atom+xml <?xml version="1.0" encoding="utf-8"?> <feed xmlns="http://www.w3.org/2005/Atom" ...> <title>Search Result: abcd</title> ...

ここで、パラメータ q に UTF-7 で書かれたスクリプトを与え、PATH_INFO を無理やり付加して次のようにアクセスします。

http://example.com/search.cgi?output=atom&q=%2BADw-...