漏洞概要 关注数(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标签: 无
漏洞详情
披露状态:
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,每个提供商,式他一个月,几年就下来了,嘿嘿
当然,如果大量的关注能带来预期的效益,证书这点小钱黑阔还是出的起的,呵呵
漏洞证明:
修复方案:
将referer为空的提交视为非法提交。当然,这样可能一些正常用户会受到影响。建议用加入随机数,authenticity_token的方法,升级整个网站的CSRF检查。
另外,希望厂商也检查下其他网易子站的代码,看是否也受影响
版权声明:转载请注明来源 小点兵@乌云
漏洞回应
厂商回应:
危害等级:中
漏洞Rank:5
确认时间:2012-12-10 13:27
厂商回复:
感谢您对网易的关注,漏洞已经修复。
最新状态:
暂无