第三方賬號登陸的過程及由此引發的血案

wyzsk發表於2020-08-19
作者: 72agency · 2014/03/19 10:40

0x00 前言


第三方賬號登陸也就是當你沒有A網站的註冊賬號時,你可以使用該與A網站合作的第三方賬號登陸A,在大多數情況下你會立即擁有與你第三方賬號繫結的A網站會員,然後執行A網站的會員操作。這種場景常見於登陸團購、酒店住宿等網站,當人們沒有該網站賬號時,不少人會毫不猶豫地選擇使用qq等登陸。以下的第三方賬號就以qq為例吧

2014031816180694671.jpg

0x01 第三方登陸的過程


第三方賬號登陸骨子裡就是單點登入SSO的概念,現在新增了很多商業因素。當你使用了第三方賬號登陸了,目標站點可以透過第三方賬號確定你的身份,你與目標站點的信任關係就建立起來了。SS0的流行讓“一個賬號遊遍網際網路”成為了可能。

SSO的優點在於風險集中化,對使用者來說不用記那麼多的賬號密碼了,對一些中小網站來說可以專心於業務上而減小賬號管理成本。SSO的缺電也很明顯,因為風險集中了,所以如果單點一旦被攻破,影響的業務就會涉及所有使用單點登入的系統。為此有些敏感操作如付款等會要求使用者輸入獨立口令或者透過簡訊驗證使用者身份等。

騰訊qq的授權登陸過程大致如下:

2014031816123888138.jpg

在這裡很重要的一點是認證的過程是在qq的控制下完成了。授權透過後,使用者還可以設定允許網路應用程式訪問自己qq賬號的那些資料以及是否可以釋出狀態等許可權。(使用者只能在qq授權規則範圍內再次選擇授權)

2014031816145358092.jpg

OAuth協議為使用者資源的授權提供了一個安全的、開放而又簡易的標準。現在已經發展到2.0版,具體內容大家可百度之。

0x02 由此引發的血案


風險1:針對目標網路應用程式而言,從第三方賬號獲取的資料構成了一種輸入,而輸入一般是需要進行過濾的,否則會引發XSS。

烏雲上有這麼一個漏洞 WooYun: 拉手網任意訂單密碼以及使用者資訊存在洩漏風險(xss盲打後臺)

拉手網獲取qq暱稱後直接輸出到拉手網頁面了,而且騰訊允許qq暱稱帶有特殊字元如等,然後使用qq賬號登陸拉手網,其在拉手網的暱稱就存在一個xss。該漏洞中作者透過評論反饋盲打了後臺併成功登陸。

直到今天拉手網的這個qq暱稱問題仍然存在,只是已經不能盲打後臺了,估計在之後的頁面輸出時做了過濾。類似的使用qq賬戶登入58團、糯米糰等,大家有興趣還可以檢測更多的網站。

風險2:授權後的站點在第三方賬號站點發布的資料也構成了一種輸入,這種輸入存在兩個問題:第一個問題本質上還是上面的過濾問題,見烏雲漏洞 WooYun: 部落格園的分享介面存在xss漏洞(廣大程式猿們要注意啊) 釋出文章到部落格園形成xss;第二個問題就是有些無良站點,在使用者授權登陸後往使用者賬號釋出令人反感的資訊,一些小白使用者甚至都不明白怎麼回事。

0x03 一點想法


任何時候都不要忘記一個原則:來自使用者的輸入都是不安全的,堵住了傳統的釋出渠道時不要忘了所謂的合作賬戶資料也是一種輸入。

儘管有些網站開發者意識到了要過濾第三方賬戶的資料,但是開發人員良莠不齊,而且策略也很紊亂。例如:有些地方過濾有些地方不過濾(拉手就是這種情況,總覺得以後還會出問題),還有的甚至根本就不過濾。建議開發者在使用者一次授權登陸後獲取第三方資料並過濾,之後在使用者此次登陸過程中就使用這份過濾後版本的資料。

 

本文章來源於烏雲知識庫,此映象為了方便大家學習研究,文章版權歸烏雲知識庫!

相關文章