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/
参考资料:
No comments:
Post a Comment