来源:自学PHP网 时间:2015-04-16 23:14 作者: 阅读:次
[导读] 这里是通过网易帐号登录56网的授权页面:https: api t 163 com oauth2 authorize?client_id=II5coZy8DdAtKt7aredirect_uri=http%3A%2F%2Fapp 56 com%2Fcooperate%2Findex php%3Faction%3DWeibo%26tag%3Dwy%26do...
这里是通过网易帐号登录56网的授权页面:
https://api.t.163.com/oauth2/authorize?client_id=II5coZy8DdAtKt7a&redirect_uri=http%3A%2F%2Fapp.56.com%2Fcooperate%2Findex.php%3Faction%3DWeibo%26tag%3Dwy%26do%3DCheckLogin%26from%3Dregbox&response_type=code&state=unk-qogvtqoomz
其中,client_id(类似于appkey)与redirect_uri绑定,如果更改redirect_uri参数为其他域名,则会返回错误:
{"request":"/oauth2/authorize","error":"error=redirect_uri_mismatch","error_code":"401","message_code":"A440153"}
漏洞存在于redirect_uri参数。redirect_uri参数可以使用%40来绕过有效性检查。
我们构造一个地址:
https://api.t.163.com/oauth2/authorize?client_id=II5coZy8DdAtKt7a&redirect_uri=http%3A%2F%2Fapp.56.com%40wooyun.org
其中,redirect_uri参数解码后为:
http://app.56.com@wooyun.org
成功地绕过了有效性检查。
登录后进行授权,成功跳转到了我们指定的地址,token泄漏:
危害:黑客可以精心构造一个页面来记录、劫持用户的token,进而控制用户的帐号。
修复方案:
加强对redirect_uri参数的校验
|
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com