01 简介
XSStrike是一款检测Cross Site Scripting的高级检测工具。它集成了payload生成器、爬虫和模糊引擎功能。XSStrike不是像其他工具那样注入有效负载并检查其工作,而是通过多个解析器分析响应,然后通过与模糊引擎集成的上下文分析来保证有效负载。除此之外,XSStrike还具有爬行,模糊测试,参数发现,WAF检测功能。它还会扫描DOM XSS漏洞。
02 特点
对参数进行模糊测试之后构建合适的payload
使用payload对参数进行穷举匹配
内置爬虫功能
检测并尝试绕过WAF
同时支持GET及POST方式
大多数payload都是由作者精心构造
误报率极低
03 安装
XSStrike只可以运行在python 3.6
及以上版本。(我的是在kali是跑的,直接下载脚本使用就行)
下载XSStrike
git clone https://github.com/s0md3v/XSStrike.git
更新依赖模块,命令如下(首先进入xsstrike目录)
pip3 install -r requirements.txt
04 使用方法
测试GET传参的网页:
python3 xsstrike.py -u "http://192.168.26.138/xss.php?payload=1"
测试POST数据:
python3 xsstrike.py -u "http://example.com/search.php" --data "q=query"
python3 xsstrike.py -u "http://example.com/search.php" --data '{"q":"query"} --json'
该工具用于检测 Web 应用程序中的 XSS 漏洞,支持多种扫描选项和自定义设置。以下是它提供的一些常见选项和参数:
- -u/--url:指定要测试的目标 URL。
- --data:用于 POST 请求,指定提交的数据。
- -e/--encode:编码荷载以绕过 WAF 或其他过滤器。
- --fuzzer:启用模糊测试模式以在请求中注入随机负载。
- --update:更新 XSStrike 到最新版本。
- --timeout:设置每次 HTTP 请求的超时时间。
- --proxy:使用代理服务器发送请求。
- --crawl:启用爬虫模式,自动发现与目标相关的页面。
- --json:将 POST 数据视为 JSON 格式。
- --path:在路径中注入负载。
- --seeds:从文件中加载作为种子的网址列表来加速爬取。
- -f/--file:从文件中加载测试负载列表。
- -l/--level:设置爬取级别,0-5。
- --headers:添加请求头。
- -t/--threads:设置并发线程数。
- -d/--delay:设置两个请求之间的延迟时间。
- --skip:跳过询问用户是否要继续扫描。
- --skip-dom:跳过 DOM 检查。
- --blind:在爬取过程中注入盲 XSS 负载。
- --console-log-level/--file-log-level/--log-file:设置日志输出级别和文件名。
get请求练习测试
python3 xsstrike.py -u "http://192.168.*.*/pikachu/vul/xss/xss_reflected_get.php?message=1&submit=submit"
post请求练习测试
python3 xsstrike.py -u "http://192.168.*.*/pikachu/vul/xss/xsspost/xss_reflected_post.php" --data "message=1&submit=submit" --headers "Cookie: ant[uname]=admin; ant[pw]=10470c3b4b1fed12c3baac014be15fac67c6e815; PHPSESSID=g3hjk0p8jis2uk16911edvain6"
实战测试
发现一个登录页面 用户名输入什么都显示正确,怀疑此处有注入点。
放到xsstrike跑
因为是post请求所以用测试post请求的命令
成功拿下,使用任意payload,开始验证
这时候还要普及一个xss漏洞,因为这个网站刚好有!
FCKeditor 2.6.7 及之前版本的 editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.php 的 print_textinputs_var 函数中存在跨站脚本 (XSS) 漏洞,远程攻击者可利用该漏洞通过 textinputs 数组参数注入任意 Web 脚本或 HTML
那么我们直接访问
spellchecker.php文件一般位于FCKeditor的安装目录下,具体位置可能因不同的安装方式和版本而有所不同。在一些基于PHP语言的CMS系统中,spellchecker.php文件也可能会被集成到特定的插件或模块中。
(一访问就弹框)
在本例中,spellchecker.php文件位于以下目录路径:
其中,“/controller/common/FCKeditor”为FCKeditor的默认安装目录
接下来我们xsstrike去跑
参数为textinputs[]
成功拿下
由于是post参数,我们bp抓包手动添加 textinputs[]参数
先获取ASP.NET 应用程序中的会话 ID
才能传入参数值
并且修改数据包Content-Type: application/x-www-form-urlencoded
成功弹框