当前位置:WooYun >> 漏洞信息

漏洞概要 关注数(24) 关注此漏洞

缺陷编号:wooyun-2012-015729

漏洞标题:网易微博批量CSRF漏洞(referer检测不严格)

相关厂商:网易

漏洞作者: 小点兵

提交时间:2012-12-07 17:20

修复时间:2013-01-21 17:20

公开时间:2013-01-21 17:20

漏洞类型:CSRF

危害等级:中

自评Rank:8

漏洞状态:厂商已经确认

漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2012-12-07: 细节已通知厂商并且等待厂商处理中
2012-12-10: 厂商已经确认,细节仅向厂商公开
2012-12-20: 细节向核心白帽子及相关领域专家公开
2012-12-30: 细节向普通白帽子公开
2013-01-09: 细节向实习白帽子公开
2013-01-21: 细节向公众公开

简要描述:

从域外https服务器提交的CSRF导致网易微博用户被动加关注,发微博,发私信,更改一些基本信息等.

详细说明:

网易微博检查http header里面的referer信息防止CSRF。然而,如果http header不包含referer,网易的代码依然会认为这是一个合法的提交。估计这个处理是为了让某些关闭浏览器referer功能的用户不受影响而设置的。但是,这个做法的直接后果是导致攻击者可以利用这一点继续进行攻击。
什么时候可以让浏览器发出的http请求不带referer? 答案很简单,https向http跳转的时候。攻击者控制一个网易微博域外的https服务器(这个很简单,攻击者可以用自己的机器搭建这么一个服务器,将攻击代码放在这个服务器上,比如attack.php,然后利用 <iframe src="https://xxxxx.xxxxx/attack.php">之类的标签将攻击扩散出去),attack.php里面可以写上:
<form name="form1" action="http://t.163.com/relation.do?action=follow" method="POST">
<input type="hidden" name="userId" value="Attacker ID">
</form>
<script language="javascript">
document.form1.submit()
</script>
用户一旦点击,将会强行关注Attacker ID。当然,还能发微博,更改一些个人信息,我这里就不一一举例子了,希望厂商将所有用户可以提交信息的地方都好好检查一下。
特别说明,弄一个https服务器,需要一个有效的证书。买证书很贵的。。。不过呢,几乎所有的证书提供商都支持试用,一般1个月。浏览器默认支持很多trusted CA,每个提供商,式他一个月,几年就下来了,嘿嘿
当然,如果大量的关注能带来预期的效益,证书这点小钱黑阔还是出的起的,呵呵

漏洞证明:

受到攻击前:

1.jpg


攻击过程:

网易微博attack1.jpg


attack2.jpg


受到攻击后:

网易微博2.jpg


修复方案:

将referer为空的提交视为非法提交。当然,这样可能一些正常用户会受到影响。建议用加入随机数,authenticity_token的方法,升级整个网站的CSRF检查。
另外,希望厂商也检查下其他网易子站的代码,看是否也受影响

版权声明:转载请注明来源 小点兵@乌云


漏洞回应

厂商回应:

危害等级:中

漏洞Rank:5

确认时间:2012-12-10 13:27

厂商回复:

感谢您对网易的关注,漏洞已经修复。

最新状态:

暂无


漏洞评价:

评论

  1. 2012-12-07 17:22 | 小胖胖要减肥 认证白帽子 ( 普通白帽子 | Rank:686 漏洞数:101 )

    我的网易微薄账号从来没有用已经被动加关注,发微博,发私信,更改一些基本信息等

  2. 2012-12-07 17:42 | se55i0n ( 普通白帽子 | Rank:1567 漏洞数:173 )

    @小胖胖要减肥 恭喜你已经成为试验品了~

  3. 2012-12-07 17:42 | 小点兵 ( 普通白帽子 | Rank:126 漏洞数:13 | 这个人很懒。。。)

    @小胖胖要减肥 不需要你用,可能是黑客发了一个链接到你邮箱,你点了这个链接,你什么也没看见,但是只要你点得时候你登录了网易(不一定要是网易微博,因为网易通行证适用于所有网易子站),你就加关注了。。。。

  4. 2012-12-07 21:31 | 小胖胖要减肥 认证白帽子 ( 普通白帽子 | Rank:686 漏洞数:101 )

    @小点兵 反正自从qq的没有用httponly开始基本连接都不敢点了

  5. 2012-12-07 22:49 | 小点兵 ( 普通白帽子 | Rank:126 漏洞数:13 | 这个人很懒。。。)

    @小胖胖要减肥 感觉最好不要用referer做检测,比较危险。除了https到http的问题,用户如果用代理(比如用户用Tor在翻墙),也有问题。。。

  6. 2012-12-07 23:17 | 小胖胖要减肥 认证白帽子 ( 普通白帽子 | Rank:686 漏洞数:101 )

    @小点兵 大多数还是只用referer没有用token的把

  7. 2012-12-07 23:20 | 小点兵 ( 普通白帽子 | Rank:126 漏洞数:13 | 这个人很懒。。。)

    @小胖胖要减肥 我查过的,国内人人网用的是随机数,然后dropbox,twitter等用的是一个类似authenticity_token的东东.貌似是说随机数设计起来逻辑很复杂,没有per用户的authenticity_token好用

  8. 2012-12-07 23:27 | 小胖胖要减肥 认证白帽子 ( 普通白帽子 | Rank:686 漏洞数:101 )

    @小点兵 后面有空要把xss的东西好好理一下,顺便看看csrf