来源:自学PHP网 时间:2015-04-17 10:16 作者: 阅读:次
[导读] 在OAuth协议上,该漏洞分属OAuth 2 0无绑定token问题:由于OAuth 2 0的无绑定token特性,导致第三方应用在使用平台方的OAuth 2 0授权(authorize)作为自身应用的认证(authenticate)手段时,缺乏...
在OAuth协议上,该漏洞分属OAuth 2.0无绑定token问题:由于OAuth 2.0的“无绑定token”特性,导致第三方应用在使用平台方的OAuth 2.0授权(authorize)作为自身应用的认证(authenticate)手段时,缺乏一种有效的认证传递校验和来源检查,从而导致只需要拥有B应用的access token,即可登录到A应用所绑定的服务中。
在漏洞本质上,该漏洞分属于认证交换的信任检查问题:当攻击者给出一个认证凭据时,如果服务器没对此认证凭据进行来源等校验,那么攻击者就能成功完成认证交换,从而造成问题。
下面我们来看看流程:
(1)用户点击用新浪微博或者QQ登录,将弹出OAuth平台方的授权页面
(2)用户点击授权后,珍品网获得OAuth平台方给出的access token
(3)珍品网将此access token上报给http://my.zhenpin.com/third_party_login/api/sina_api.php接口,以获取珍品网的认证
(4)珍品网得到此认证字符串后,即有权限操作绑定的珍品网数据,即登陆成功。
那么这个问题就在于,如果有方法可以恶意替换OAuth平台方给出的access token,那是否就以进入他人的珍品网账号?实验证明,是可行的。
漏洞证明:1、设置好代理,我们用burp suite
2、在浏览器A上用weibo账户A登陆应用A
3、然后我们劫持账户A在应用A的授权access token
4、我们在B浏览器上用微博账户B登陆B应用——珍品网
5、然后我们把B账户在B应用的授权access token换成A账户在A应用的授权access token(A的access token没有在A应用上登陆,是被半路劫持的,因为一个access token用一次就会失效。)
6、我们看到返回响应中,登陆成功,也就是说我们利用我们劫持到的A的授权access token登陆了B应用——珍品网:
|
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com