Pikachu靶场:DOM型XSS以及DOM型XSS-X
实验环境以及工具
Firefox浏览器、Burp Suite、Pikachu靶场
实验原理
要改变页面的某个东西,JavaScript就需要获得对HTML文档中所有元素进行访问的入口。这个入口,连同对HTML元素进行添加、移动、改变或移除的方法和属性,都是通过文档对象模型来获得的(DOM )。所以,你可以把DOM理解为一个一个访问HTML的标准编程接口。
跨站脚本漏洞测试流程
1.在目标站点上找到输入点,比如查询接口,留言板等;
2.输入一组“特殊字符+唯一识别字符”,点击提交后,查看返回的源码,是否有做对应的处理;
3.通过搜索定位到唯一字符,结合唯一字符前后语法确认是否可以构造执行js的条件(构造闭合);
4.提交构造的脚本代码(以及各种绕过姿势),看是否可以成功执行,如果成功执行则说明存在XSS漏洞;
DOM型XSS
具体操作
1.在目标站点上找到输入点,比如查询接口,留言板等;
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zMuhP3FS-1618649618815)(C:\Users\freedom\AppData\Roaming\Typora\typora-user-images\image-20210417145120908.png)]](https://i-blog.csdnimg.cn/blog_migrate/adebffd7eb9f10cd9bfda6ad0b15e6f4.png)
2.输入一组“特殊字符+唯一识别字符”,点击提交后,查看返回的源码,是否有做对应的处理;
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9flXKnD6-1618649618819)(C:\Users\freedom\AppData\Roaming\Typora\typora-user-images\image-20210417150021234.png)]](https://i-blog.csdnimg.cn/blog_migrate/3c50ccf67b869ced6b01009f6323b4b1.png)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-M8OjUF2X-1618649618820)(C:\Users\freedom\AppData\Roaming\Typora\typora-user-images\image-20210417150042605.png)]](https://i-blog.csdnimg.cn/blog_migrate/4bf4c2d88b24da28b1fc4663e66f5bca.png)
发现正常输入字符串直接返回一个what do you see?但是输入了**’"<>123返回了一个123‘>**说明没有对特殊字符进行过滤。
3.通过搜索定位到唯一字符,结合唯一字符前后语法确认是否可以构造执行js的条件(构造闭合);
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pdOjKxuW-1618649618822)(C:\Users\freedom\AppData\Roaming\Typora\typora-user-images\image-20210417145828135.png)]](https://i-blog.csdnimg.cn/blog_migrate/9abfafa435625b91cafdd7c39144b8fa.png)
发现了一个js函数,利用了DOM将字符串进行了拼接并把值给a标签的href,然后输出一个what do you see?
4.提交构造的脚本代码(以及各种绕过姿势),看是否可以成功执行,如果成功执行则说明存在XSS漏洞;
利用已知条件构建payload效果为弹窗,弹窗内容为111
<a href='#' onclick="alert(111)">'>what do you see?</a>
则payload为
#' onclick="alert(111)">
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nPXDWAGT-1618649618823)(C:\Users\freedom\AppData\Roaming\Typora\typora-user-images\image-20210417150934888.png)]](https://i-blog.csdnimg.cn/blog_migrate/292b2a24691b6fc9d011be83d7df7cee.png)
DOM型XSS-X
具体操作
1.在目标站点上找到输入点,比如查询接口,留言板等;
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Mk8htn4a-1618649618825)(C:\Users\freedom\AppData\Roaming\Typora\typora-user-images\image-20210417151214571.png)]](https://i-blog.csdnimg.cn/blog_migrate/b743ddf8a7867e1bc32bb204450f8293.png)
2.输入一组“特殊字符+唯一识别字符”,点击提交后,查看返回的源码,是否有做对应的处理;
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-42R6zqkT-1618649618826)(C:\Users\freedom\AppData\Roaming\Typora\typora-user-images\image-20210417151643996.png)]](https://i-blog.csdnimg.cn/blog_migrate/4d42f3b665cfe706f3ccfe21b294bf6d.png)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-M0TwDrkM-1618649618827)(C:\Users\freedom\AppData\Roaming\Typora\typora-user-images\image-20210417151826393.png)]](https://i-blog.csdnimg.cn/blog_migrate/9fbcd917eebdf6b39692596a755d344d.png)
3.通过搜索定位到唯一字符,结合唯一字符前后语法确认是否可以构造执行js的条件(构造闭合);
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1DPLl2cQ-1618649618828)(C:\Users\freedom\AppData\Roaming\Typora\typora-user-images\image-20210417152023522.png)]](https://i-blog.csdnimg.cn/blog_migrate/98d63a9d0056525b483ca9eec6c4f9bf.png)
发现了一个js函数,利用了DOM将字符串进行了拼接并把值给a标签的href,然后输出一个what do you see?
4.提交构造的脚本代码(以及各种绕过姿势),看是否可以成功执行,如果成功执行则说明存在XSS漏洞;
利用已知条件构建payload效果为弹窗,弹窗内容为111
<a href='#' onclick="alert(111)">'>what do you see?</a>
则payload为
#' onclick="alert(111)">
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RxylP1e6-1618649618828)(C:\Users\freedom\AppData\Roaming\Typora\typora-user-images\image-20210417152346778.png)]](https://i-blog.csdnimg.cn/blog_migrate/eab94613357bd77c51546100226aed00.png)
总结
DOM型XSS只在前端,与后端毫无关系。DOM-X型危害更大,它能够像反射型一样在URL中体现,将URL发给了受害者就能进行攻击。
本文介绍DOM型XSS及DOM型XSS-X的测试流程,并通过实例展示如何利用特定条件构建payload,触发弹窗效果,揭示这类漏洞的攻击原理。
2485

被折叠的 条评论
为什么被折叠?



