XSSer工具使用
XSSer 是一款专注于自动化发现和利用跨站脚本(XSS) 漏洞的命令行工具,是安全审计和渗透测试中的利器。
和 SQLMap 一样,我们首先必须强调:
🚨 重要声明与道德准则
- 合法授权:仅对您拥有明确书面授权的资产进行测试。
- 不要作恶:切勿在任何未授权的网站上使用,这是违法行为。
- 练习环境:请在专门搭建的漏洞实验环境(如 bWAPP、DVWA、XSS-game)中学习和测试。
请务必在法律允许的范围内使用!
📦 安装 XSSer
XSSer 需要 Python 3 环境。
1. 使用 Kali Linux(最简单,已预装):
Kali Linux 通常已经预装了 XSSer。
sudo xsser --help
2. 使用 Git 克隆(推荐,获取最新版):
git clone https://github.com/epsylon/xsser
cd xsser
sudo python3 setup.py install
# 或者直接运行
sudo python3 xsser --help
3. 使用 Pip 安装:
pip3 install XSSer
xsser --help
🎯 核心使用流程与常用命令
XSSer 的功能非常强大,参数繁多。其核心逻辑是:向目标参数注入大量精心构造的 XSS 载荷(Payload),并根据响应判断注入是否成功。
第 1 步:基础检测
最基本的用法是指定一个目标 URL 和参数。
# 检测GET参数中的XSS漏洞
xsser -u "http://example.com/search.php?q=test" -g "q"# 检测POST数据中的XSS漏洞 (使用 -p)
xsser -u "http://example.com/login.php" -p "username=admin&password=pass" --payload="<script>alert('XSS')</script>"# 同时测试URL中的所有参数
xsser -u "http://example.com/page.php?id=1&name=test" --auto
第 2 步:载荷(Payload)控制
XSSer 的强大之处在于它有海量的内置 Payload 和绕过技巧。
# 使用内置的Payload列表(默认)进行测试
xsser -u "http://example.com/?q=test" -g "q"# 使用指定的Payload文件(每行一个)
xsser -u "http://example.com/?q=test" -g "q" -i /path/to/my_payloads.txt# 使用编码方式绕过WAF/过滤器(非常有用!)
xsser -u "http://example.com/?q=test" -g "q" --Str # 字符串混淆
xsser -u "http://example.com/?q=test" -g "q" --Hex # 十六进制编码
xsser -u "http://example.com/?q=test" -g "q" --Hpp # 使用HTTP参数污染技术# 使用“变体”技术生成大量Payload(如大小写变换、插入标签等)
xsser -u "http://example.com/?q=test" -g "q" --Coo # 使用Cookie注入
xsser -u "http://example.com/?q=test" -g "q" --Camel # 使用驼峰过滤绕过
xsser -u "http://example.com/?q=test" -g "q" --Discard # 使用“<></>”标签组合绕过
第 3 步:高级功能与利用
# 1. 伪造Referer头进行注入
xsser -u "http://example.com/" --referer "http://evil.com\"><script>alert(1)</script>"# 2. 伪造User-Agent头进行注入
xsser -u "http://example.com/" --user-agent "<script>alert('XSS')</script>"# 3. 同时进行多参数、多Payload的深度测试(--threads 指定线程数)
xsser -u "http://example.com/form.php?id=1&name=foo" --auto --threads=5# 4. 与短链服务结合,生成用于钓鱼的XSS链接(社会工程学)
# 该命令会生成一个短链接,用户点击后会触发XSS
xsser -u "http://vuln-site.com/?q=XSS" -g "q" --Short --tinyurl
# 输出:http://tinyurl.com/xxxxx (这个短链接就是你的XSS载荷)# 5. 进行DOM型XSS审计(通过爬取页面中的JS代码进行分析)
xsser -u "http://example.com/" --Dom --Cw=10 # --Cw 是爬虫深度
第 4 步:结果处理
# 将测试结果保存为XML报告
xsser -u "http://example.com/?q=test" -g "q" --xml=report.xml# 使用详细模式(-v)查看实时攻击进度和结果
xsser -u "http://example.com/?q=test" -g "q" -v# 与代理联动(如Burp Suite),方便调试和分析请求
xsser -u "http://example.com/?q=test" -g "q" --proxy=http://127.0.0.1:8080
⚙️ 常用参数速查表
| 参数 | 说明 | 示例 |
|:—|:—|:—|
| -u
/ --url
| 目标URL | -u "http://site.com/?id=1"
|
| -g
| 指定GET参数 | -g "id"
|
| -p
| 指定POST参数 | -p "username,password"
|
| --cookie
| 设置Cookie | --cookie="sid=abc123"
|
| --user-agent
| 自定义UA | --user-agent="XSSer/1.0"
|
| --referer
| 伪造Referer | --referer="<script>alert(1)</script>"
|
| --payload
| 自定义单个Payload | --payload="<img src=x onerror=alert(1)>"
|
| -i
| 从文件读取Payload | -i ./payloads.txt
|
| --auto
| 自动测试URL中的所有参数 | --auto
|
| --Hex
/ --Str
| 使用编码绕过 | --Hex
|
| --Hpp
| HTTP参数污染 | --Hpp
|
| --Coo
| Cookie注入 | --Coo
|
| --Dom
| DOM型XSS爬虫审计 | --Dom
|
| --Short
| 生成短链接 | --Short --tinyurl
|
| --proxy
| 使用代理 | --proxy="http://127.0.0.1:8080"
|
| --threads
| 设置线程数(提高速度) | --threads=10
|
| -v
| 详细输出模式 | -v
|
| --xml
| 生成XML报告 | --xml=result.xml
|
🛠️ 实战命令示例
1. 对目标进行全方位深度检测
xsser -u "http://vuln-site.com/search.php?query=test&sort=asc" \--auto \ # 自动检测所有参数(query和sort)--threads=8 \ # 使用8个线程加速--Hex \ # 尝试十六进制编码绕过--Hpp \ # 尝试HTTP参数污染--proxy="http://127.0.0.1:8080" # 通过Burp Suite观察流量
2. 专门进行Cookie注入检测
xsser -u "http://vuln-site.com/admin/" \--cookie "sessionid=abc123; username=admin" \ # 提供合法Cookie--Coo \ # 专门测试Cookie中的字段--Str # 使用字符串混淆
3. 从文件读取目标进行批量检测
# 将目标URL列表存入urls.txt
echo "http://site1.com/?q=1" >> urls.txt
echo "http://site2.com/profile.php?user=2" >> urls.txt# 批量测试
xsser -i urls.txt --auto -v
🛡️ 防御建议
如何防御 XSSer 这类自动化工具?
- 输出编码:所有用户可控的数据在输出到HTML页面时(如
<div>{{ data }}</div>
),必须根据上下文进行正确的编码(HTML, HTML Attribute, JS, CSS, URL)。 - 内容安全策略(CSP):部署强大的CSP头是缓解XSS危害的最有效手段之一。
- 输入验证:对输入进行严格的过滤和校验,只允许预期的字符类型和长度。
- 使用现代框架:如React、Vue等,它们内置了部分XSS防护机制。
- 定期审计:使用类似XSSer的工具和手动代码审计相结合的方式,定期检查自身应用。
希望这份指南能帮助你在合法的前提下,有效地使用 XSSer 来提升Web应用的安全性!