搜索
查看: 2245|回复: 0

xssfork - 新一代 xss 探测工具

[复制链接]

264

主题

373

帖子

827

积分

vip用户

Rank: 6Rank: 6

积分
827

注册会员活跃会员热心会员

QQ
发表于 2018-10-17 14:25:30 | 显示全部楼层 |阅读模式
xssfork简介
xssfork 作为 sicklescan 的一个功能模块,其开发主要目的是用于检测 xss 漏洞。
传统的 xss 探测工具,一般都是采用 payload in response 的方式,即在发送一次带有 payload 的 http 请求后,通过检测响应包中 payload 的完整性来判断,这种方式缺陷,很多。
第一:不能准确地检测 dom 类 xss
第二:用类似于 requests 之类的库不能真正的模拟浏览器
第三:网页 js 无法交互
怎么解决?如果能够用浏览器代替这个模块,去自动hook是最好的。所幸,我了解到 phantomjs,当然现在 google 浏览器也支持 headless 模式,类似的,你也可以采用 google 浏览器去做检测。
原理
对于这类 fuzz 过程,基本都是预先准备好一些 payload,然后加载执行。对于这类 io 型密集的扫描模型,后端使用多线程就比较适用,但是由于 phantomjs 你可以理解为一个无界面的浏览器,在加载的时候,其缺陷也比较明显,比较吃内存,用它来发包自然不像 requests 库轻量。
编码脚本
由于基础的 payload 模块,我收集了71个。
除了这些基础的 payload,xssfork 还提供了几个编码脚本,查看脚本,可以看 help
现阶段提供了10进制,16进制,随机大小写,关键字叠加四个脚本。
10hex_encode
将 html 标签内部字符10进制化


<a href=javascript:alert(65534);>aaa</a>




16hex_encode
将 html 标签内部字符16进制化

uppercase
随机大小写将 <script>alert(65534);</script> 转换成 <ScRIPt>alert(65534);</ScRIpT>

addkeywords
主要是应对过滤为 replace('keyword>s','') 的情况,<script>alert(65534);</script> 变成 <<script>script>alert(65534);</script>当然默认开启的是轻量模式,即只返回一个payload,开启重量模式,可以生成更加丰富的pyaload,效果如下
<script>alert(65534);</script>  
<script>alert(65534);</ScrIpt>  
<ScrIpt>alert(65534);</sCrIpt>  
<scRiPt>alert(65534);</script>  
<ScrIpt>alert(65534);</script>

演示

场景2.大小写绕过

场景1.反射型xss

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
有没有参加CTF比赛的,一起组队啊!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

温馨提示
1:发帖请遵守《中华人民共和国网络安全法》,发帖内容不得维护国家的、集体的、个人的利益。
2:请勿发布恶意攻击他人的技术文章、工具、和使用教程,发现后删帖处理。
3:本站的目的在于让更多的人了解网络安全,避免受到他人的恶意攻击。
4:本站中的部分文章,可能会出现一些“技术类手段”,但这仅仅为学习演示所用,而非恶意传播技术。
5:本站中的部分文章,可能转载自互联网。如有侵权行为,联系我们删除即可。
6:学习仅是充实头脑,切勿恶意攻击个人、企业等。所造成的法律后果一切由自己承担,本站及其站长概不负责。
我知道了
快速回复 返回顶部 返回列表