DOM Invader | DOMXSS挖掘助手

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篇原创内容

公众号

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值