利用XSStrike Fuzzing XSS漏洞

前言

关于XSStrike这款工具虽有前人写过相关资料,但是已经历经一年之久了,这款工具已经发生重大的改变(如从仅支持python2.7 改变为python 3.6),因此还是有必要再次写一下的。

1.png

简介

XSStrike是一款检测Cross Site Scripting的高级检测工具。它集成了payload生成器、爬虫和模糊引擎功能。XSStrike不是像其他工具那样注入有效负载并检查其工作,而是通过多个解析器分析响应,然后通过与模糊引擎集成的上下文分析来保证有效负载。除此之外,XSStrike还具有爬行,模糊测试,参数发现,WAF检测功能。它还会扫描DOM XSS漏洞。

项目地址:https://github.com/s0md3v/XSStrike

特点

反射和DOM XSS扫描

多线程抓取

背景分析

可配置的核心

WAF检测和规避

浏览器引擎集成为零误报率

智能负载发生器

手工制作的HTML和JavaScript解析器

强大的模糊引擎

支持Blind XSS

完善的工作流程

完整的HTTP支持

来自文件的Bruteforce有效负载

有效载荷编码

python编写

安装

由于XSStrike只可以运行在python 3.6 以上版本,因此笔者使用parrot来安装运行这款工具(笔者的旧版Kali 自带的python 3 版本是3.5的)。

1、给python3安装pip,使用命令如下:

sudo apt-get install python3-pip

2、下载XSStrike,命令如下:

git clone https://github.com/s0md3v/XSStrike.git

3、安装依赖模块,命令如下:

pip3 install -r requirements.txt

4、运行工具,命令如下:

python3 xsstrike.py -u "http://target"

用法

 -h, --help //显示帮助信息
 -u, --url //指定目标URL
 --data //POST方式提交内容
 -v, --verbose //详细输出
 -f, --file //加载自定义paload字典
 -t, --threads //定义线程数
 -l, --level //爬行深度
 -t, --encode //定义payload编码方式
 --json //将POST数据视为JSON
 --path //测试URL路径组件
 --seeds //从文件中测试、抓取URL
 --fuzzer //测试过滤器和Web应用程序防火墙。
 --update //更新
 --timeout //设置超时时间
 --params //指定参数
 --crawl //爬行
 --proxy //使用代理
 --blind //盲测试
 --skip //跳过确认提示
 --skip-dom //跳过DOM扫描
 --headers //提供HTTP标头
 -d, --delay //设置延迟

实例

为了测试该工具的实用性,笔者写了一个简单的存在XSS漏洞的PHP文件。笔者为它命名为xss.php文件。

xss.php代码如下图:

2.png

保存并上传至笔者自己的服务器上。
3.png

下图是通过工具Fuzzing出来的一个payload:

4.png

我们利用工具Fuzzing出来的payload进行一下测试,测试结果如下图所示:

5.png

*本文作者:看不尽的尘埃,转载请注明来自FreeBuf.COM

https://www.freebuf.com/articles/web/191003.html

标签