漏洞概要 关注数(24) 关注此漏洞
缺陷编号:wooyun-2013-035424
漏洞标题:天涯CSRF系列四: 利用储存XSS+伪CSRF进行蠕虫攻击(XSS过滤器绕过)
相关厂商:天涯社区
漏洞作者: LaiX
提交时间:2013-08-28 07:49
修复时间:2013-10-12 07:50
公开时间:2013-10-12 07:50
漏洞类型:xss跨站脚本攻击
危害等级:高
自评Rank:15
漏洞状态:厂商已经确认
漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]
Tags标签: 无
漏洞详情
披露状态:
2013-08-28: 细节已通知厂商并且等待厂商处理中
2013-08-28: 厂商已经确认,细节仅向厂商公开
2013-09-07: 细节向核心白帽子及相关领域专家公开
2013-09-17: 细节向普通白帽子公开
2013-09-27: 细节向实习白帽子公开
2013-10-12: 细节向公众公开
简要描述:
这次的例子将结合一个POST的CSRF来实现蠕虫攻击,这次的蠕虫仅仅是利用一个CSRF来传播,如果用XSS(dom操作)来感染,危害更大。
详细说明:
通过发微博,我抓到了一个这样一个POST的地址
当我们单独访问这个地址的时候,出现如下信息。
这说明什么?说明已经对来源的地址做了过滤。
有的同学就问了,这还CSRF什么?还利用个毛啊!
不要急嘛,故事才刚刚开始。
漏洞证明:
既然我们无法通过外部的链接来触发CSRF,那么我们可以利用储存型的XSS来触发这个CSRF。在本域下发包,来源域是天涯的,自然不会拦截。
正好在天涯博客日志页面发现一个储存XSS的实例,那我们就来结合这个实例进行一次蠕虫攻击。
1.一波三折的XSS过滤器绕过
首先打开HTML编辑器
先插入一条
试试
点击更新在点HTML编辑回来发现变成了这样
没关系,我们打开开发者工具在源码中修改
发布之后,打开开发者工具发现又被替换成了这样
万一只是SRC被替换呢,试试插入onerror事件
发布之后,发现又被吃掉了。
这也不行那也不行,干脆直接发包来提交文章吧。
看了下参数,我构造了一个POST的HTML来发文章
提交之后:
回到博客主页,终于弹起来了
弹起来了就意味着可以蠕虫了。
接下来我们来整理一下逻辑。首先我们需要编写一个访问我的博客地址就能自动发微博的一段payload。通过这个payload可以发布我的博客地址然后诱导大家都来访问,这样下去访问一次就自动发一次微博,达到蠕虫传播的效果。
2.构造payload
构造这个payload,我们得弄清楚先做什么再做什么。
第一步:构造一个发布微博的HTML表单
第二步:构造一个iframe来进行POST提交,或者使用AJAX提交(因为是同域的情况下,这里我使用iframe,便于学习跨域提交)
第三步:把发布微博的HTML表单写进iframe里然后隐蔽的提交
经过这三步,我们得到一个完整的 payload:
现在payload有了,怎么才能让payload执行呢。
我们得先往博客上发恶意代码才行。为了发送恶意代码我构造了这样一个POST表单
其中一大串ASCII码代表:
其意为 引入一个外部的JS文件,也就是引入我们的payload, 当访问者访问我们的博客就会触发payload立刻感染。
接着用它发表一篇带有恶意代码的文章,到目前位置所有的工作都做完了。
刷新之后我们看看微博:
当别的用户看见我们发的微博,带着强烈的好奇心就会来点击链接,然后...
修复方案:
累死我了,@XSSER 这下给高点rank不过分了吧.......- -;
版权声明:转载请注明来源 LaiX@乌云
漏洞回应
厂商回应:
危害等级:低
漏洞Rank:4
确认时间:2013-08-28 15:20
厂商回复:
感谢提供,辛苦了。 :)
最新状态:
暂无