Thursday 6 November 2014

開心網 (kaixin001.com) OAuth 2.0 Covert Redirect 系統漏洞

Covert Redirect: http://tetraph.com/covert_redirect/Covert Redirect Related to OAuth 2.0 and OpenID:http://tetraph.com/covert_redirect/oauth2_openid_covert_redirect.html





Kaixin 的 OAuth 2.0 系統可能遭到攻擊。更確切地說, Kaixin 對 OAuth 2.0 系統的 parameter “&redirect_uri“ 驗證不夠充分。可以用來構造對 Kaixin 的 URL跳轉 攻擊。

與此同時,這個漏洞可以用下面的參數來收集第三方 App 和 用戶 的敏感信息(敏感信息包含在 HTTP header裏),

"&response_type"=sensitive_info,token,code...

"&scope"=get_user_info,email...

它也增加了對第三方網站 URL跳轉 攻擊的成功率。

漏洞地點 "/authorize?",參數"&redirect_uri", e.g.

http://api.kaixin001.com /oauth2/authorize?client_id=232383298458c9b3c19540c63bc4cb0d& response_type=code&redirect_uri=http://store.tv.sohu.com/web /login.do?bru=http://tetraph.com/essayjeans/seasons/祭春.html [1]







同意三方 App 前:

當壹個已經登錄的 Kaixin 用戶點擊上面的 URL ([1]), 對話框會詢問他是否接受第三方 App 接收他的信息。如果同意,他會被跳轉到 參數 "&redirect_uri" 的 URL。

如果沒有登錄的Kaixin 用戶點擊 URL ([1]), 他登錄後會發生同樣的事情。

同意三方 App 後:

已經登錄的 Kaixin 用戶 不會再被詢問是否接受 三方 App。當他點擊 URL ([1]) 時,他會被直接跳轉到攻擊者控制的頁面。

如果 Kaixin 用戶沒有登錄,攻擊依然可以在要求他登錄的Kaixin的對話框被確認後完成(這個過程不會提示任何和三方 App 有關的內容)。





(1) Kaixin 壹般會允許屬於已被驗證過得三方 App domain 的所有 URLs。 然而,這些 URLs 可以被操控。比如,參數 "&redirect_uri" 是被三方 App 設置的,但攻擊者可以修改此參數的值。

因此,Kaixin 用戶意識不到他會被先從 Kaixin 跳轉到第三方 App 的網頁,然後從此網頁跳轉到有害的網頁。這與從 Kaixin 直接跳轉到有害網頁是壹樣的。

因為 Kaixin 的 OAuth 2.0 客戶很多,這樣的攻擊可以很常見。

在同意三方 App 之前,Kaixin 的 OAuth 2.0 讓用戶更容易相信被跳轉的頁面是安全的。這增加了三方 App 被 URL跳轉 攻擊的成功率。

同意三方 App 後, 攻擊者可以完全繞過 Kaixin 的 URL跳轉 驗證系統。







(2) 用了壹個頁面進行了測試, 頁面是 "http://tetraph.com/essayjeans/seasons/祭春.html". 我們可以假定它是有害的,並且含有收集三方 App 和用戶敏感信息的 code。

下面是壹個有漏洞的三方 domain:

sohu.com

這個 domain 有漏洞的 URL:

http://store.tv.sohu.com/web/login.do?bru=http://tetraph.com/essayjeans/seasons/祭春.html

Kaixin 與 sohu.com 有關的有漏洞的 URL:

http://api.kaixin001.com/oauth2/authorize?client_id=232383298458c9b3c19540c63bc4cb0d&response_type=code&redirect_uri=http://passport.sohu.com

POC:

http://api.kaixin001.com /oauth2/authorize?client_id=232383298458c9b3c19540c63bc4cb0d& response_type=code&redirect_uri=http://store.tv.sohu.com/web /login.do?bru=http://tetraph.com/essayjeans/seasons/祭春.html



測試是基於Windows 7 的 IE (9.0.15) 和 Ubuntu (12.04) 的 Firefox (26.0)。













發現者:
王晶, 數學與物理學院, 南陽理工大學, 新加坡
http://www.tetraph.com/wangjing/








參考資料:
http://tetraph.com/covert_redirect/

No comments:

Post a Comment