Xss Bypass dog

2019-09-29 约 58 字 预计阅读 1 分钟

声明:本文 【Xss Bypass dog】 由作者 抹布 于 2019-09-29 09:20:20 首发 先知社区 曾经 浏览数 87 次

感谢 抹布 的辛苦付出!

前言


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

Fuzz


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

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

提交恶意xss_payload

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

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

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

剩下的都是waf不拦截的。

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

拼接与编码


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

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

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

拼接字符串。

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

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

常见的base64编码

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

alertJS16编码成\x61\x6c\x65\x72\x74,成功弹框。

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

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

<body onpageshow=self['\x61\x6c\x65'%2B'\x72\x74'](1)>

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

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

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

后记


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

参考


https://www.anquanke.com/post/id/180187

关键词:[‘安全技术’, ‘WEB安全’]


author

旭达网络

旭达网络技术博客,曾记录各种技术问题,一贴搞定.
本文采用知识共享署名 4.0 国际许可协议进行许可。

We notice you're using an adblocker. If you like our webite please keep us running by whitelisting this site in your ad blocker. We’re serving quality, related ads only. Thank you!

I've whitelisted your website.

Not now