xssyahoo.comを取得しました   12 comments

Posted at 10:13 pm in diary,XSS

こんにちは。

最近引き取った猫がいきなり脱走して未だ未帰還だったり(自分の居場所に帰ってればいいのですが…)いろいろあってなかなか更新できません。

早く帰ってきてください

早く帰ってきてください

で、たまには更新しなきゃということで
最近修正されたYahoo!のXSSについてちょっと書こうかと思います。

とはいえyahoo.com以外には残っていそうな予感がするので要点だけ。

Yahoo!では外部入力を無防備に(もちろんある条件が整えばの話ですが)HTMLとして書き出す外部ドメインのHTMLファイルを読み込むという、ややこしいうえにセキュリティ的にはなんだかなあということを行っているところがありました。きっとクロスドメインな何かを行いたかったんだと思います。

それだけだとパートナーサイトしょうがないなあで終わりだったのですが、なぜか同じものがyahoo.comにもあり、それを見つけて昨年指摘しました。脆弱性の数でいうと数個なのですが、loginやsecurityを含むYahoo!のほぼすべてのサブドメインになぜかそのhtmlが置かれていたのでURLでいうと1000くらいありました。ほとんどのサイトでそのhtmlが使われている形跡がないのに不思議ですね(au.yahoo.comとかサブドメインでは実際に使われていました)。

指摘から半年が過ぎ、少しずつ*.yahoo.com内のページが修正/削除されて、3月くらいにはすべてなくなっていきました(合わせて5000ドルくらいいただきましたありがとうございます)。

とはいえお気に入りの仕様なのか何の都合かは知りませんが、なぜか*.yahoo.com以外のドメインには残っています。そのため、あんまり大っぴらに書けないなあと思いながら過ごしていたのですが、何かの拍子にこのHTMLファイルの新バージョンを見つけてしまいました。

さすがに修正されているだろうと思いソースを見たのですが肝心の部分はそのままです。ですが、refererを見て呼び出し元がYahoo!のときだけHTMLを書き出すというように条件が追加されています。


if( ! /^https?\:\/\/[^\/\?]*yahoo\.(net|com)(\:\d+)?([\/\?]|$)/.test(d.referrer) )

*yahoo.comと*yahoo.net…えっ!?
これってyahooじゃなくてもオッケーやん…

ということでxssyahoo.comというドメインを取得しました。

xssyahoo.com取得しました。

xssyahoo.com取得しました。

xssyahoo.comから読み込むと予想通りXSSできました。

ということで先月報告したこのXSS、今朝、無事に修正された(というかファイルが消された)との連絡が来ました。次のバージョンではもうちょっとまともになってるといいですね。つかこのファイルyahoo.comに置いちゃダメだから。

Written by bogus on 7月 8th, 2014