Facebook XSSストーリー

ある晩、私はFacebookの安全性を調査することにしました。 ポータルを少し歩いた後、私の視線はGraph API Explorerをつかみました。 これは、Facebook Graph APIを操作するためのWebアプリケーションです。これにより、Facebookからユーザーデータを受信し、Facebookにアップロードできます。 もちろん、多くの操作はOAuthトークンでのみ利用可能です。 このアプリは実際に何をしますか?



画像



ユーザーがデータを受信または送信するリクエストを行うと、アプリケーションはJSONPリクエストをgraph.facebook.com



送信するとgraph.facebook.com



、受信したデータをページに描画するコールバックを追加します。 まず、このコールバックを自分のもの( このメソッドの詳細 )に置き換えようとしましたが、実装していなかったコールバックパラメーターが単に破棄されたため、役に立ちませんでした。 コールバックの実装に何度か失敗した後、Facebookの調査中に偶然見つけた1つの興味深いページ"login.php"



を思い出しました。 このページはすべてのドメインで見つかり、 facebook.com



サブドメインの任意のページへのリダイレクトを許可しました。 まず、同じgraph.facebook.com



リダイレクトを試みましたが、コールバックパラメーターを使用しました。



developers.facebook.com/tools/explorer?method=GET&path=login.php?next%3dhttps%253a//graph.facebook.com/me%253fcallback%253dalert







テキスト[Object object]



ある大切なウィンドウを見ました。これは私のコールバックが満たされたことを証明しています。 しかし、もちろん、私はそこで止まりませんでした。 今、FacebookでJavaScriptコードを保存して後で実行できる場所を探し始めました。 私が最初に思いついたのは、Content-Typeをtext / javascriptに変更して、メッセージファイルをユーザーに送信することでした。 その後、次のようなリンクを取得します



www.facebook.com/ajax/messaging/attachment.php?attach_id=&mid=&hash=







attachment.fbsbx.com/messaging_attachment.php




, . , , , GIF-, JavaScript- ( ). GIF- , . .



, ... . , Facebook "content-security-policy"



, JavaScript, . , , Internet Explorer . "x-content-security-policy"



. IE10 :



画像



! . Facebook, , , .



画像



:







: , Positive Research.




www.facebook.com/ajax/messaging/attachment.php?attach_id=&mid=&hash=







attachment.fbsbx.com/messaging_attachment.php




, . , , , GIF-, JavaScript- ( ). GIF- , . .



, ... . , Facebook "content-security-policy"



, JavaScript, . , , Internet Explorer . "x-content-security-policy"



. IE10 :



画像



! . Facebook, , , .



画像



:







: , Positive Research.







All Articles