转载至https://github.com/s0md3v/XSStrike/wiki/Usage
特点
反射和DOM XSS扫描
多线程抓取
背景分析
可配置的核心
WAF检测和规避
浏览器引擎集成为零误报率
智能负载发生器
手工制作的HTML和JavaScript解析器
强大的模糊引擎
支持Blind XSS
完善的工作流程
完整的HTTP支持
来自文件的Bruteforce有效负载
有效载荷编码
python编写
xsstrike很强
项目地址:
https://github.com/s0md3v/XSStrike
安装
git clone https://github.com/s0md3v/XSStrike.git
使用文档
https://github.com/s0md3v/XSStrike/wiki/Usage
usage: xsstrike.py [-h] [-u TARGET] [--data DATA] [-t THREADS] [--seeds SEEDS] [--json] [--path]
[--fuzzer] [--update] [--timeout] [--params] [--crawl] [--blind]
[--skip-dom] [--headers] [--proxy] [-d DELAY] [-e ENCODING]
optional arguments:
-h, --help show this help message and exit
-u, --url target url
--data post data
-f, --file load payloads from a file
-t, --threads number of threads
-l, --level level of crawling
-t, --encode payload encoding
--json treat post data as json
--path inject payloads in the path
--seeds load urls from a file as seeds
--fuzzer fuzzer
--update update
--timeout timeout
--params find params
--crawl crawl
--proxy use prox(y|ies)
--blind inject blind xss payloads while crawling
--skip skip confirmation dialogue and poc
--skip-dom skip dom checking
--headers add headers
-d, --delay delay between requests
!!!重点总结
比如:http://192.168.123.112/bachang/pikachu-master/vul/xss/xss_reflected_get.php?message=213&submit=submit
这样,message参数处存在反射型xss漏洞:
但是这里还有个sumbit参数,那么把这串地址放到xsstrike中跑,就检测不出漏洞了:
而自己写的只有单个message参数的却可以:
所以说,如果像第一个这样有两个参数的话,可以尝试先把sumbit参数删掉,然后测试message参数是否存在xss漏洞;如果message参数不存在,那么把message参数删掉,测试sumbit参数是否存在xss漏洞,以此类推,就是只能一个一个参数的测试了。
扫描单个URL
选项:-u
或--url
测试一个使用GET方法的网页。
python xsstrike.py -u "http://example.com/search.php?q=query"
提供POST数据
python xsstrike.py -u "http://example.com/search.php" --data "q=query"
测试URL路径组件
选项: --path
想要将有效负载注入URL路径,例如http://example.com/search/<payload>
,您可以使用--path
switch来实现。
python xsstrike.py -u "http://example.com/search/form/query" --path
将POST数据视为JSON
选项: --json
此开关可用于通过POST方法测试JSON数据。
python xsstrike.py -u "http://example.com/search.php" --data '{"q":"query"} --json'
爬行
选项: --crawl
从目标网页开始搜寻目标并进行测试。
python xsstrike.py -u "http://example.com/page.php" --crawl
爬行深度
选项:-l
或--level
| 默认:2
通过此选项,您可以指定爬网的深度。
python xsstrike.py -u "http://example.com/page.php" --crawl -l 3
测试/搜寻文件中的URL
选项: --seeds
如果要测试文件中的URL,或者只是想添加种子进行爬网,则可以使用该--seeds
选项。
python xsstrike.py --seeds urls.txt
要么
python xsstrike.py -u "http://example.com" -l 3 --seeds urls.txt
文件中的蛮力载荷
选项:-f
或--file
您可以从文件加载有效负载,并检查它们是否有效。XSStrike在此模式下不会执行任何分析。
python3 xsstrike.py -u "http://example.com/page.php?q=query" -f /path/to/file.txt
使用default
与负载XSStrike的默认有效载荷文件路径。
查找隐藏的参数
选项: --params
通过解析HTML和暴力破解来查找隐藏的参数。
python xsstrike.py -u "http://example.com/page.php" --params
线程数
选项:-t
或--threads
| 默认:2
可以在爬网时向目标发出并发请求,并且-t
可以使用option指定要发出的并发请求数。尽管线程可以帮助加快爬网速度,但它们也可能触发安全机制。大量的线程也可能导致小型网站瘫痪。
python xsstrike.py -u "http://example.com" -t 10 --crawl -l 3
超时
选项:--timeout
| 默认:7
在考虑HTTP(S)请求超时之前,可以指定等待的秒数。
python xsstrike.py -u "http://example.com/page.php?q=query" --timeout=4
延迟
选项:-d
或--delay
| 默认:0
可以指定在每个HTTP(S)请求之间保留的秒数。有效值为int,例如1表示秒。
python xsstrike.py -u "http://example.com/page.php?q=query" -d 2
提供HTTP标头
选项: --headers
此选项将打开您的文本编辑器(默认为'nano'),您只需粘贴HTTP标头并按Ctrl + S
保存即可。
如果您的操作系统不支持此功能,或者您不想这样做,则可以简单地从命令行添加标头,\n
并按如下所示分隔: python xsstrike.py -u http://example.com/page.php?q=query --headers "Accept-Language: en-US\nCookie: null"
盲XSS
选项: --blind
在爬网时使用此选项将使XSStrike注入您定义的XSS盲负载,core/config.py
以将其注入每个HTML表单的每个参数。
python xsstrike.py -u http://example.com/page.php?q=query --crawl --blind
有效负载编码
选项:-e
或--encode
XSStrike可以按需编码有效负载。到目前为止,支持以下编码:
base64
python xsstrike.py -u "http://example.com/page.php?q=query" -e base64
想要支持编码吗?打开一个问题。
模糊测试
选项: --fuzzer
该模糊器旨在测试过滤器和Web应用程序防火墙。这非常缓慢,因为它会随机发送*延迟请求,并且延迟可能长达30秒。要使延迟最小,请使用-d
选项将延迟设置为1秒。
python xsstrike.py -u "http://example.com/search.php?q=query" --fuzzer
记录中
选项:--console-log-level
|Default: INFO
可以选择最低日志记录级别以在控制台中显示xsstrike日志: python xsstrike.py -u "http://example.com/search.php?q=query" --console-log-level WARNING
选项:--file-log-level
|Default: None
如果指定,xsstrike还将将具有相同日志记录级别或更高日志记录级别的所有日志写入文件: python xsstrike.py -u "http://example.com/search.php?q=query" --console-log-level DEBUG
选项:--log-file
|Default: xsstrike.log
将存储日志的文件名。请注意,如果--file-log-level
未指定,此选项将无效。 python xsstrike.py -u "http://example.com/search.php?q=query" --file-log-level INFO --log-file output.log
使用代理
选项:--proxy
| 默认0.0.0.0:8080
您必须在其中设置代理(y | ies)core/config.py
,然后可以使用--proxy
开关随时使用它们。
有关设置代理的更多信息,请参见此处。
python xsstrike.py -u "http://example.com/search.php?q=query" --proxy
跳过确认提示
选项: --skip
如果希望XSStrike在找到有效负载的情况下继续扫描,而不询问您是否要继续扫描,则可以使用此选项。它还将跳过POC生成。
python xsstrike.py -u "http://example.com/search.php?q=query" --skip
跳过DOM扫描
选项: --skip-dom
您可能希望在爬网时跳过DOM XSS扫描,以节省时间。
python xsstrike.py -u "http://example.com/search.php?q=query" --skip-dom
更新资料
选项: --update
如果启用此选项,XSStrike将检查更新。如果有更新的版本可用,XSStrike将下载更新并将其合并到当前目录中,而不会覆盖其他文件。
python xsstrike.py --update