DOM Invader
Dom XSS在不借助awvs这类强大的扫描器难寻踪迹,Dom Invader可以帮助测试人员很容易的基于前端调试在堆栈中发现蛛丝马迹。Dom Invader会自动识别页面所有可控的Source(源)和Sink(汇)并将Canary(金丝雀)注入后按照危害程度进行高到低排序,当然也并不是百分百存在漏洞,例如:以下图片(挖到当我没说🤪),当然师傅们真挖到 了别忘了我😗
如何启用 DOM Invader
从Burp 2021.7版本开始自带浏览器中集成了该插件
image
开启插件后f12查看是否可以使用
image
用例1 基础使用
以下地址为portswigger官方靶场
http://portswigger-labs.net/dom-invader/
选择第一个靶场进行训练
https://portswigger-labs.net/dom-invader/testcases/augmented-dom-eval/index.php
首先单击Test 发现为get请求,url多了x参数。
image
那么选择将Canary 注入到URL
image
发现Sinks中有个标红的eval(),单击右边蓝色的Stack Trace进行跟踪,具体位置它会显示在console窗口。
image
image
跟进来发现是eval(x)出了错
image
x内容即为url中的x内容;那么构造**x=alert(1)**即可
image
用例2 事件监听与重定向
https://portswigger-labs.net/dom-invader/testcases/augmented-dom-click-location-replace/index.php
该用例将展示Dom Invader 设置中 Auto fire events 和Redirection prevention的使用
image
首先开启这两个功能,自动点击事件与禁止重定向功能;至于为什么:click事件触发时会执行**location.replace(x)**当前页面会进行文档替换(刷新),并且禁止回退。所以js中的堆栈数据刷新了自然就没有数据了。
image
同样是选择url注入 payload:javascript:alert(1)
image
用例3 消息拦截器
该用例需要开启Postmessage interception功能,以下三个子功能可开可不开,都是自动化进行恶意payload测试,下面我将会放出开与不开的提示对比。
image
image
image
危害效果立马明显起来了,查看堆栈为eval(x),直接修改payload 选择发送
image
Build Poc是真的不错,能将payload改成恶意代码后会生成一个iframe加载,点击就会跳转弹窗。
<!doctype html>
<html>
<head>
<!-- DOM XSS PoC - generated by DOM Invader part of Burp Suite -->
<meta charset="UTF-8" />
<title>Postmessage PoC</title>
<script>
function pocLink() {
let win = window.open('https://subdomain1.portswigger-labs.net/dom-invader/testcases/postmessage-eval-iframe-multiple/external.html');
let msg = "javascript:alert(1)";
setTimeout(function(){
win.postMessage(msg, '*');
}, 5000);
}
function pocFrame(win) {
let msg = "javascript:alert(1)";
win.postMessage(msg, '*');
}
</script>
</head>
<body>
<a href="#" onclick="pocLink();">PoC link</a>
<iframe src="https://subdomain1.portswigger-labs.net/dom-invader/testcases/postmessage-eval-iframe-multiple/external.html" onload="pocFrame(this.contentWindow)"></iframe>
</body>
</html>
最后请多多进行练习并掌握
一位不愿透露姓名的热心网友
不定时更新一些渗透随笔。
14篇原创内容
公众号