XSS测试之闭合的正确使用方式

1 篇文章 0 订阅
1 篇文章 0 订阅

        在测试XSS漏洞的时,不少同鞋会从大量Payload中随便挑选几个顺眼来尝试,没有弹窗就放弃了,这种方法并不是很科学,一些稍微隐秘点的XSS基本都能逃过这样的检查。下面我将从XSS的本质讲起,给各位分享一下我的XSS测试方法。

        XSS属于注入类漏洞,其本质是:在前端代码中用户可以控制内容的地方(简称可控点),拼接上一段可被浏览器执行的新语句。这里可被浏览器执行是关键,不管你正在测试的点是否有漏洞,首先拼接上去的脚本同上下文看来,需要一定程度的符合前端代码的语法结构。

        举例,标签的文本内容为可控点时

        <div id="div1">可控点</div>

        需要使用 <> 来另起一个标签,不然浏览器只会认为这里面是纯文本内容,如:

        <div id="div1"><img src=a οnerrοr=alert(0)></div>

        <div id="div1"><script>alert(0)</script></div>

        ……

        再举例,标签的属性值为可控点时

        <div id="可控点">div1</div>

        需要使用 " 来闭合本来就有的引号,如:

        <div id="" οnclick="alert(0)">div1</div>

        <div id=""><a href="javascript:alert(0)">div1</div>

        (👆这条语法有问题,<a>标签没有,但是正如我上面说了,我们插入的脚本一定程度的符合语法结构即可,大多数浏览器会很“智能”补上去)

        ……

        有时属性值这里使用 ' 也能闭合,因为这里开发写不写单双引号,浏览器都会改成双引号

         再再举例,标签事件调用方法所传参数为可控点时

         <a οnclick="tiaozhuan('可控点')">

        这里既可以使用 " 闭合,又可以使用 ' 闭合

        <a οnclick="tiaozhuan('"href="javascript:alert(0)"a="')">

        👆这个和上个例子其实是一样的,只是破坏了这个onclick方法

        <a οnclick="tiaozhuan('',alert(0),'')">

        👆这个,js不像java那么严谨,定义好的方法,入参可以自己随便加

        ……

         再再再举例,js代码中的可控点

        <script>

                var a = '可控点1';

                var b = document.getElementById('可控点2').value;

                ……

        </script>

        这里情况太多,只举两个简单的,希望你能懂我意思,可控点1这里得用 '; 来闭合

                var a = '';alert(0);var xxx='';

        可控点2这里要闭合的东西有点多

                var b = document.getElementById('xxx').value;

                alert(0);

                var hhh=document.getElementById('xxx').value;

        js代码里面的闭合一定要严谨,哪怕只多了这么一个小东西,都会导致一大段js无法执行

        上面的例子并不是全部情况,在合适的地方用合适的方法,总之,不要只拿着死的Payload来测试,要懂得灵活闭合和绕过,绕过下节讲。

  • 12
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值