securecatの日記: 常にサニタイズする癖を 5
日記 by
securecat
レナ姫のWeb研究室を読んでいて、相変わらずというか読めば読むほどに勉強になるサイトだなぁとか思っていたわけですが、ふとソースを見ると、DOCTYPE宣言の次の行に、(閲覧者の)UserAgentの値をコメントの中に吐き出しているではないですか。
そこで気づいたことなんですが、UserAgentの値をサニタイズしてないんですね。つまり早い話が、「レナ姫のWeb研究所は、XSS脆弱性を伴っている」ということですが。
#もちろんサイトの性質上、およびUserAgentの値からという特性上、問題が発生するとは考え難いわけではありますが。
与えられた値を出力するときには、値のチェックやサニタイズはやって然るべきなわけで。CGIプログラムとかだったら、ちゃんとサニタイズしているんでしょうけども、UserAgentとかだとスッカリ忘れてしまっていたというか或いは思いもよらなかったという場合もありえますけど。まあこういうのは結局、癖つけないと駄目なんだと思います。
そこで気づいたことなんですが、UserAgentの値をサニタイズしてないんですね。つまり早い話が、「レナ姫のWeb研究所は、XSS脆弱性を伴っている」ということですが。
#もちろんサイトの性質上、およびUserAgentの値からという特性上、問題が発生するとは考え難いわけではありますが。
与えられた値を出力するときには、値のチェックやサニタイズはやって然るべきなわけで。CGIプログラムとかだったら、ちゃんとサニタイズしているんでしょうけども、UserAgentとかだとスッカリ忘れてしまっていたというか或いは思いもよらなかったという場合もありえますけど。まあこういうのは結局、癖つけないと駄目なんだと思います。
参考までに、たとえば以下のような値がUserAgentに入っていると、リソースやブラウザに依存しますが、ともあれ問題が起きるかもしれません。
- --><html> : application/xmlのリソースの場合などは、XMLの文法的にエラります
- -->入口 : UTF-8のリソースの場合などは、異なる文字コードが混在する可能性があります
- --><html><head><title>I have an XSS</title></head><body> : タイトルが見た目上は書き換えられてしまうかもしれません
- --><xmp> : ソースが丸見えになるかもしれません
- --><link rel=stylesheet href=http://example.com/hoge.css> : hoge.cssの中に「@import url("javascript:alert('I have an XSS')");」などと書いてあるとXSS脆弱性をついたスクリプトが発動するかもしれません
ちなみに (スコア:1)
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; Sleipnir; ">--><html><xmp>)
とかなっているようです。もう、ヤな感じ!(謎)
Re:ちなみに (スコア:1)
Re:ちなみに (スコア:1)
Re:ちなみに (スコア:1)
妙にUA(特にOS)がバラけていたので、多分技術系の人達だと思いますが、何処経由で来たか覚えてませんか?
Re:ちなみに (スコア:1)