Xss Bypass dog

admin 2023年10月5日00:41:13评论24 views字数 879阅读2分55秒阅读模式

前言


之前写过类型的水文,感觉写的一般。重新再苟了一遍。

Fuzz


简单粗暴的Fuzz,是我的首选,可以从Github,推特以及一些xss_payload分享网站,收集到足够的xss_payload进行Fuzz测试。

首先我们先查看下,waf拦截包的差异,正常提交。

Xss Bypass dog

提交恶意xss_payload

Xss Bypass dog

比较两次提交,waf拦截时,数据包出现2548这个关键数字。

Xss Bypass dog

接下来使用BurpIntruder模块来Fuzz,导入payload。

fuzz结束后,点击HTTP历史标签下发的Filter弹出筛选过滤器界面,选择第三个,与关键字2548匹配上的将不再显示。

Xss Bypass dog

剩下的都是waf不拦截的。

Xss Bypass dog

fuzz的优点是速度,当然xss_payload的质量也影响最终的结果,所以平时多收集些字典满好的。

拼接与编码


这方面的技巧蛮多的,使用一些对象或函数,让payload变形。

Xss Bypass dog

拼接方面,使用诸如top this self parent frames content window这些对象。

直接使用这些对象连接函数,也可以绕过WAF。

Xss Bypass dog

拼接字符串。

Xss Bypass dog

可以看到alert函数被分成2个字符串,再拼接在一起。

Xss Bypass dog

编码,常见的你可能想到利用evalsetTimeout()setInterval等。

常见的base64编码

Xss Bypass dog

前几天看来一篇国外翻译的文章,看到一个有趣的例子。

Xss Bypass dog

alertJS16编码成x61x6cx65x72x74,成功弹框。

我自己尝试了下,也用了不同的编码,发现都可以绕过waf,并成功弹框。

Xss Bypass dog

Xss Bypass dog

然后我又将编码拆分,发现也可以弹框。

<body onpageshow=self['x61x6cx65'%2B'x72x74'](1)>

接下来就是,一些特殊函数的利用。

concat()在实际应用中,不仅仅可以用于连接两个或多个数组,还可以合并两个或者多个字符串。

Xss Bypass dog

join函数将数组转换成字符串。

Xss Bypass dog

后记


没有太多的亮点,只是在一些基础上变化了下,学的比较浅,如有错处,请师傅斧正。

来源:【https://xz.aliyun.com/】,感谢【抹布 】

原文始发于微信公众号(衡阳信安):Xss Bypass dog

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年10月5日00:41:13
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Xss Bypass doghttps://cn-sec.com/archives/2086055.html

发表评论

匿名网友 填写信息