XSStrike工具的安装及使用(包括实战应用)

01 简介

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

02 特点

对参数进行模糊测试之后构建合适的payload

使用payload对参数进行穷举匹配

内置爬虫功能

检测并尝试绕过WAF

同时支持GET及POST方式

误报率极低

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[]参数

先获取 应用程序中的会话 ID

才能传入参数值

并且修改数据包Content-Type: application/x-www-form-urlencoded

成功弹框

经验分享 程序员 微信小程序 职场和发展