人生送りバント。

yuki540の人生送りバント。

Pixivの脆弱性(Reflected XSS)を見つけて、5000円貰った話

映画観たよ。

久しぶりの更新です。

ちょっと前になるんですが、「劇場版 魔法科高校の劣等生 星を呼ぶ少女」観ましたよ!

映画館内に結構なお年寄りがいて、「おじいさんでも魔法科観てるのか」とちょっとびっくりしました。

映画の感想ですが、自分的にはめっちゃ面白かったのでもう一回観に行きたいです!

Pixivの脆弱性を見つけて、5000円貰った

f:id:yuki540com:20170703162903p:plain

映画の話は置いといて、Pixivの脆弱性(Reflected XSS)を見つけて5000円貰った(まだ振り込まれていない)ので、見つけるまでの流れとxssの内容を書きたいと思います。

ふとしたきっかけでxssを探した。

※すでに脆弱性が修正されています。

前に趣味でxssを探していたんですが、ふと「また、xss見つけたい!」と思い、再開しました。

某○MMのスマートフォン版サイトのReflected XSSやコミック系サイトのReflected XSSを見つけたりと、xss初心者なりに頑張って見つけることができました。(脆弱性は、すでに報告済みで修正されています)

その後、Pixiv関連のサービスのxssも探そうとしたら…

ありました。

5分くらいでたまたま見つかりました。

そして、ラッキーなことにPixivは、BugBountyでプログラムを実施していたので、脆弱性と認定されればお金がもらえるチャンスでした。

これは脆弱性なのか…?

僕が見つけたのは、スマートフォン版Pixivサイトのxssで、

https://touch.pixiv.net/search.php

検索結果ページのGETパラメータを変更ではなく、パスを付け足すことでxssするものでした。

https://touch.pixiv.net/search.php/'-alert('xss')-'

f:id:yuki540com:20170703163332p:plain

パスを付け足した場合のみ、動的にJavaScriptを生成している箇所の値がシングルクオートをエスケープしていませんでした。

f:id:yuki540com:20170703163957p:plain

で、alertを出せたのはいいのですが、具体的な攻撃方法が浮かばないのです。

ほとんどの記号が使えないので(URLエンコードされる)、オープンリダイレクトなんかもできません。

自分なりに攻撃方法を考えたのですが、思い浮かばなかったので諦めました。

それでも、「alertは出せるから報告しよう!」ということでダメ元で報告しました。

なんかわからんけど、認定された。

f:id:yuki540com:20170703164758p:plain

10日後ぐらいにPixivから脆弱性認定されました。

ダメかと思ってましたが、やりました!

Pixivさんありがとうございます!!!

機会があれば、会社見学させてください…

f:id:yuki540com:20170703170537p:plain

一気にランキング上がりました()

Pixiv百科事典にも同じものがあったので。

f:id:yuki540com:20170703165529p:plain

Pixiv百科事典にも同じものがあったので、そちらも報告しました。(修正済み)

意外なサイトにxss

僕はアニメの公式サイトを見るのが好きなのですが、「ついでにここでもxss探そう」という試みで探しているとありました。

アニメ公式サイトのようなサイトにはないと思っていたのですが、最近は動的なアニメ公式サイトが増えてきたため、xssを孕んでいる可能性があるのだなと痛感しました。

最後に

今回のことで、xssのことももちろん、Webセキュリティの勉強をして行きたいなと思いました。

自身が安全なWebサイト作れるように励みたいと思います。

ではでは。