加载中…
正文 字体大小:

开心网 (kaixin001.com) OAuth 2.0 Covert Redirect 系统漏洞

(2014-06-22 13:29:58)
标签:

it

分类: OAuth2.0漏洞

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)。

 

 

 

 

 

My name is WANG Jing (王晶). I am a PhD student in mathematics from Nanyang Technological University. I obtained my bachelor’s degree in mathematics at University of Science and Technology of China.

http://www.tetraph.com/wangjing/

 

我叫王晶 (WANG Jing),是 新加坡南洋理工大学 数学系 的 PhD。 我本科是在 中国科学技术大学 数学系 读的。

http://www.tetraph.com/wangjing/chinese.html

0

阅读 评论 收藏 转载 喜欢 打印举报
已投稿到:
  • 评论加载中,请稍候...
发评论

    发评论

    以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

      

    新浪BLOG意见反馈留言板 不良信息反馈 电话:4006900000 提示音后按1键(按当地市话标准计费) 欢迎批评指正

    新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

    新浪公司 版权所有