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.

Source: https://habr.com/ru/post/J197740/


All Articles