转载至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>,您可以使用--pathswitch来实现。

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

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐