漏洞概要
关注数(24)
关注此漏洞
漏洞标题:点我的链接我就可能会进入你的B站账号
提交时间:2016-01-11 10:26
修复时间:2016-02-22 16:48
公开时间:2016-02-22 16:48
漏洞类型:CSRF
危害等级:中
自评Rank:10
漏洞状态:厂商已经确认
Tags标签:
无
漏洞详情
披露状态:
2016-01-11: 细节已通知厂商并且等待厂商处理中
2016-01-11: 厂商已经确认,细节仅向厂商公开
2016-01-21: 细节向核心白帽子及相关领域专家公开
2016-01-31: 细节向普通白帽子公开
2016-02-10: 细节向实习白帽子公开
2016-02-22: 细节向公众公开
简要描述:
感谢@呆子不开口!思路好赞的!我来写个详细点的利用过程。
详细说明:
在B站上,用户是允许绑定微博登陆的,然而绑定的接口是可以CSRF的,也就是说当用户登录后,点击我的链接,我就可以调用该接口完成绑定,绑定后就可以用我使用的微博进行登录了。具体接口如下:
问题的关键点在于此接口的CSRF,而另外一个难题就是如何在用户的浏览器上登录我的微博了。
0x01 注册一个微博,然后用微博授权给bilibili。要先授权的原因是在伟哥的漏洞中已经提到过,这里引用并修改一下:“新浪微博的授权有如下特点,如果当前登陆的微博曾经授权过bilibili,那么就会自动绑定成功”
0x02 用一个隐藏的iframe在用户的浏览器上登录我们指定的微博。这里使用到的接口有个问题需要注意,就是请求参数中password_4555和vk=4555_a3b5_1907935541,这两个参数是在http://login.weibo.cn/中生成的,有一定的时效性,后端会校验是否合法,因此我们需要动态生成登录的表单。我写了一个简单的flask接口,在服务端请求后提取出来生成表单,然后前端自动提交即可完成登录。
0x03 登录微博后前端就可以用Image加载指定的URL,完成绑定了。如果用户先绑定了微博,需要先解绑,然后再绑定,具体过程看漏洞证明中的代码。
0x04 用户访问完以上的页面后,我们就可以利用上面的微博账号登录到用户的bilibili账号了。
漏洞证明:
我直接给出我写个一个flask程序,依赖flask和beautifulsoup,就不在我自己的主机上搭测试环境了。
server.py,自己改一下weibo_username和weibo_password吧。
运行后访问页面,你就会发现:
修复方案:
漏洞回应
厂商回应:
危害等级:低
漏洞Rank:3
确认时间:2016-01-11 20:08
厂商回复:
谢谢
最新状态:
暂无
漏洞评价:
评价
-
2016-01-11 11:03 |
autO_pw ( 路人 | Rank:13 漏洞数:5 )
-
2016-01-11 11:06 |
f4ckbaidu ( 普通白帽子 | Rank:223 漏洞数:28 | 开发真是日了狗了)
-
2016-01-11 12:02 |
von ( 路人 | Rank:2 漏洞数:1 | 一个帅字贯穿了我的一生~)
-
2016-01-11 14:21 |
SH0X8001 ( 路人 | Rank:17 漏洞数:5 | 你猜)
-
2016-01-11 20:25 |
zhchbin ( 普通白帽子 | Rank:113 漏洞数:24 | 要走得再远一些!|但行好事,不问前程)
@autO_pw @SH0X8001 发了会被打的。 @f4ckbaidu 叔叔,我们不约。 @von 然而rank都挺低,不过过程能学到不少。
-
2016-01-12 00:59 |
呆子不开口 ( 普通白帽子 | Rank:370 漏洞数:34 | 求各种兼职)
-
2016-01-12 09:39 |
phantom0307 ( 普通白帽子 | Rank:131 漏洞数:39 | Night time sharpensHeightens each sens...)
-
2016-02-01 12:46 |
川川 ( 实习白帽子 | Rank:75 漏洞数:30 | 今天我刷屏)
请用户安装了python后,下载server.py,然后运行server.py,然后再悄悄的点一下我的链接........你都让用户执行任意程序了,还来玩csrf?这就好比拿到了服务器权限,我非要执行一个反射xss,来证明危害
-
2016-02-01 12:52 |
zhchbin ( 普通白帽子 | Rank:113 漏洞数:24 | 要走得再远一些!|但行好事,不问前程)
-
2016-02-01 12:59 |
zhchbin ( 普通白帽子 | Rank:113 漏洞数:24 | 要走得再远一些!|但行好事,不问前程)
@川川 给出的python程序是攻击者的服务器,可能是我没写清楚导致误解了,我的错。一句话描述这个漏洞:用户访问了攻击者提供的链接后,攻击者的微博绑定到了用户的B站账号中。
-
2016-02-01 14:16 |
川川 ( 实习白帽子 | Rank:75 漏洞数:30 | 今天我刷屏)
-
2016-02-03 14:16 |
Adra1n ( 普通白帽子 | Rank:441 漏洞数:69 )
-
2016-02-03 14:44 |
zhchbin ( 普通白帽子 | Rank:113 漏洞数:24 | 要走得再远一些!|但行好事,不问前程)
@Adra1n 之前是没有验证码的,想必新浪微博的人也看到这个问题了。
-
2016-02-03 14:45 |
呆子不开口 ( 普通白帽子 | Rank:370 漏洞数:34 | 求各种兼职)
@zhchbin 还有更简单的自动登陆新浪的方式,你这个有点粗暴了
-
2016-02-03 15:11 |
zhchbin ( 普通白帽子 | Rank:113 漏洞数:24 | 要走得再远一些!|但行好事,不问前程)
@呆子不开口 玄机难道是藏在SSO验证的过程中?等有空去研究一下那个过程,还是有其他?