漏洞概要
关注数(24)
关注此漏洞
漏洞标题:我是如何绕过网易防御、利用CSRF蠕虫继续刷粉丝的
相关厂商:网易
提交时间:2013-01-16 15:01
修复时间:2013-03-02 15:02
公开时间:2013-03-02 15:02
漏洞类型:设计缺陷/逻辑错误
危害等级:高
自评Rank:10
漏洞状态:厂商已经确认
Tags标签:
无
漏洞详情
披露状态:
2013-01-16: 细节已通知厂商并且等待厂商处理中
2013-01-17: 厂商已经确认,细节仅向厂商公开
2013-01-27: 细节向核心白帽子及相关领域专家公开
2013-02-06: 细节向普通白帽子公开
2013-02-16: 细节向实习白帽子公开
2013-03-02: 细节向公众公开
简要描述:
感谢@王小贱 @xsjswt提供的友情支持!高安全的就得交一些这样的朋友撒!
详细说明:
1.既然是CSRF蠕虫,肯定是发微博的地方出了问题!接口在这里:
2.上述链接即为发微博的另一个接口(实际上应该是转发微博),简单说下参数,status参数即为发布的微博内容,这里是必填项,我可以把csrf蠕虫的载体做为链接发在这里,欺骗用户点击!参数in_reply_to_status_id默认不填,source选填项,表示微博从哪里转发过来的,link不知,不填也木关系,method和keyfrom默认即可!
3.这里实际上是做referer判断的,即referer必须为163.com或者空,其他域不行。这意味着我是不是只能本地单机玩了啊!哈哈,经过长时间的测试,发现验证referer的正则表达式写的有问题!只是判断了域名是否包含有163.com,而不是验证根域名为163.com。那么我这里可以构造子域名t.163.com.test.av作为蠕虫传播的载体服务器,即可绕过。
漏洞证明:
4.非常感谢@xsjswt提供的子域名,我的POC在下面这个链接:
一并将代码拷贝如下:
5.Chrome登录风萧萧吸的微博账号发布微博如下:
6.Firefox登录另一个网易微博账号:
7.受害者点击上述短链接,服务器访问如下:
8.再查看主页面,发布了一条同样的微博哦:
修复方案:
1.其实中间遇到了不少问题,referer为空可以绕过防御,所以方便了本地测试。但是原数据包纹风不动的提交可以正常发布微博的,但是放在POC里,本地提交总是返回【var updatestatus = 400】。后来才知道是编码的问题,服务器端只认UTF-8。
2.既然referer域名可以改成t.163.com.test.av是可以的,那么改成test.av/csrf.php?163.com呢,是不是可以呢?这个以后大家当做小的细节来考虑吧!
3.既然上面的蠕虫已经实现,刷粉丝就可以更容易了,在POC里加如下代码可点击即关注:
4.在防御方面,强烈建议:
关键请求还是改成post比较好!
关键请求还是加token比较好!
5.另外,不管怎样我还是来求个礼物吧!
版权声明:转载请注明来源 风萧萧@乌云
漏洞回应
厂商回应:
危害等级:高
漏洞Rank:15
确认时间:2013-01-17 18:40
厂商回复:
感谢您对网易的关注,漏洞已经修复。
最新状态:
暂无