好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

网易微博批量CSRF(referer检测不严格) - 网站安全

从域外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测试数据/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检查。

 

另外,希望厂商也检查下其他网易子站的代码,看是否也受影响

查看更多关于网易微博批量CSRF(referer检测不严格) - 网站安全的详细内容...

  阅读:50次