%81で起こるXSSについて調べてみた   no comments

Posted at 12:55 pm in internet,Security

こんにちは。最近ファーストサーバー系列のレンサバに移行したところだったので他人事ではない今日この頃です。自分にお金があってやっぱりビジネス向けの高い方!とか無理していたらとんでもないことになってるところでした。バックアップは大切ですね。

cats_2012-06-18_4

ほっとしてます

さて、無事だったサーバーはともかく、最近ちょっと思い出したかのようにXSSを探したり、昔発見したものを見返したりしています。そんなXSSの中に、

<form method=”get” action=””>login<br>
username<input name=user type=text value=”<php?$_GET[‘user’]?>”><br>
password<input name=pass type=password value=”<php?$_GET[‘pass’]?>”><br>
<input type=”submit” value=”login”>
</form>

みたいなタグのパラメータとして%81みたいな文字(?)を与えると、後続の文字が食われてXSSが可能になるという素敵なものがあります。

わかりにくいので図で説明

とはいえ最近こういうXSSが成功するサイトはなく、たまにはタグ壊したいよねということで脆弱なサイトを自分の環境に作って試してみたのですが、手元のFirefoxでは再現しません。Σ(゚д゚lll)ガーン

え?なんで、と思って他のブラウザーで試してみたのですができません。で、近くにあったKindleブラウザーで試したところできたじゃないですか。どうやらブラウザーのがちゃんと処理するように対策されているのですね。なんやねんそれー徳丸本のレビューしたときはできたのにー(徳丸本のVMで)とか、ちょっと残念な気がしたのですが、たぶんバグなんでしょうから直ってめでたしめでたしなんでしょうね。

と、これだけだと、チラシの裏にでも書いとけやボケ、とディスられそうなのと、せっかく乗りかかった船なので、他のブラウザーがどうなっているのか調べてみました。

やってみたことは、上記のようなフォームに

?user=1%81&pass=onmouseover%3dalert%28/xss/%29//

みたいなパラメータを与えて文字コードごとにalertが開くかみたいなことを地道に試しただけです。こんなかんじのサイトですね。

http://bogus.jp/xsssample/xsssample_81.php?user=1%8f&pass=onmouseover%3dalert%28/xss/%29//&charset=Shift-JIS

試した文字コードは基本的にUTF-7、UTF-8、Shift-JIS、EUC-JP、iso-2022-jp、iso-2022-kr、hz-gb-2312になります。あとIE6は寝て起きたら自動アップデートされていたので間違いがあるかもしれません。

ということで実験結果。

ブラウザーとバージョン XSSできた文字コード
IE9(9.0.8112.16421) iso-2022-kr、 iso-2022-jp
IE8(8.0.7601.17514) iso-2022-kr 、iso-2022-jp
IE6 Shift-JIS EUC-JP
Firefox 13.0.1 なし
Firefox 10.0.2 hz-gb-2312
Firefox 5.0.1 Shift-JIS hz-gb-2312
Firefox 3.0.15 Shift-JIS hz-gb-2312
Konqueror 4.5.3 Shift-JIS EUC-JP
Konqueror 3.5.10 Shift-JIS EUC-JP
Kindle 3.3 Shift-JIS EUC-JP iso-2022-jp

崩れなかったっぽいブラウザ

  • Chrome
  • Opera
  • Safari
  • Android

このような結果でしたが、元ページの作成文字コードやOSの違いなどの他の要因もあるかもしれないので調べてみると面白いのかもしれません。研究家の方はとっくに調べてるのかもしれません( ゚ρ゚ )

たぶん現行のブラウザーで通常のサイトにアクセスするぶんにはXSSできてしまうことはないと思うのですが、metaタグを突っ込めるなどエンコードをこちらから設定できる頭のおかしいサイトだと攻撃されてしまうかもしれません。

文字コードおもしろいですね。


<修正:6/27>
本文中の記述したHTMLが脆弱でないとのご指摘を受けましたので脆弱なように修正しました。
佐名木さんご指摘ありがとうございました。

Written by bogus on 6月 25th, 2012

Tagged with