Pikachu靶场:DOM型XSS以及DOM型XSS-X

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.在目标站点上找到输入点,比如查询接口,留言板等;

Pikachu靶场:DOM型XSS以及DOM型XSS-X_第1张图片

2.输入一组“特殊字符+唯一识别字符”,点击提交后,查看返回的源码,是否有做对应的处理;

Pikachu靶场:DOM型XSS以及DOM型XSS-X_第2张图片

Pikachu靶场:DOM型XSS以及DOM型XSS-X_第3张图片

发现正常输入字符串直接返回一个what do you see?但是输入了**’"<>123返回了一个123‘>**说明没有对特殊字符进行过滤。

3.通过搜索定位到唯一字符,结合唯一字符前后语法确认是否可以构造执行js的条件(构造闭合);

Pikachu靶场:DOM型XSS以及DOM型XSS-X_第4张图片

发现了一个js函数,利用了DOM将字符串进行了拼接并把值给a标签的href,然后输出一个what do you see?

4.提交构造的脚本代码(以及各种绕过姿势),看是否可以成功执行,如果成功执行则说明存在XSS漏洞;

利用已知条件构建payload效果为弹窗,弹窗内容为111

'>what do you see?

则payload为

#' onclick="alert(111)">

Pikachu靶场:DOM型XSS以及DOM型XSS-X_第5张图片

DOM型XSS-X

具体操作

1.在目标站点上找到输入点,比如查询接口,留言板等;

Pikachu靶场:DOM型XSS以及DOM型XSS-X_第6张图片

2.输入一组“特殊字符+唯一识别字符”,点击提交后,查看返回的源码,是否有做对应的处理;

Pikachu靶场:DOM型XSS以及DOM型XSS-X_第7张图片

Pikachu靶场:DOM型XSS以及DOM型XSS-X_第8张图片

3.通过搜索定位到唯一字符,结合唯一字符前后语法确认是否可以构造执行js的条件(构造闭合);

Pikachu靶场:DOM型XSS以及DOM型XSS-X_第9张图片

发现了一个js函数,利用了DOM将字符串进行了拼接并把值给a标签的href,然后输出一个what do you see?

4.提交构造的脚本代码(以及各种绕过姿势),看是否可以成功执行,如果成功执行则说明存在XSS漏洞;

利用已知条件构建payload效果为弹窗,弹窗内容为111

'>what do you see?

则payload为

#' onclick="alert(111)">

Pikachu靶场:DOM型XSS以及DOM型XSS-X_第10张图片

总结

DOM型XSS只在前端,与后端毫无关系。DOM-X型危害更大,它能够像反射型一样在URL中体现,将URL发给了受害者就能进行攻击。

你可能感兴趣的:(Pikachu靶场实战,信息安全)