文章总结: 本文介绍开源XSS利用工具toxssin,它通过https服务器与恶意JS负载自动执行XSS漏洞利用,可拦截cookies、击键、表单提交等,支持会话管理与自定义脚本执行。工具需SSL证书运行,面临混合内容、证书信任、CORS及CSP等利用障碍。文章强调仅限授权渗透测试使用,并提供安装配置与可信证书获取建议。 综合评分: 75 文章分类: 渗透测试,红队,WEB安全,安全工具
XSS 不只能弹个框:这款开源「毒素」让恶意脚本在浏览器里安家落户
原创
网安之家 网安之家
网安之家-CyberHomestead
2026年10月7日 23:55 湖北
在小说阅读器读本章
去阅读
在公众号小说中沉浸阅读
XSS 不只能弹个框:这款开源「毒素」让恶意脚本在浏览器里安家落户
本文忠实整理自开源项目 toxssin(t3l3machus/toxssin,MIT 许可证,1.5k Stars)。原文已由作者提供中英对照,本文未做任何增删改,仅做排版组织。免责声明:针对您没有明确测试权限的网络应用程序使用此工具是非法的。您对使用此工具可能造成的任何问题负责。
项目定位:一句话看懂
toxssin(毒素)是一种开源渗透测试工具,可自动执行利用跨站脚本(XSS)漏洞的过程。它由一个 https 服务器组成,该服务器充当为该工具提供支持的恶意 JavaScript 有效负载(toxin.js)生成的流量的解释器。
An XSS exploitation command-line interface and payload generator. 一个 XSS 利用命令行界面和有效负载生成器。
该项目最初是(现在仍然是)一项基于研究的创造性努力,旨在通过使用普通 JavaScript、可信证书和廉价技巧来探索 XSS 漏洞可能引入的可利用深度。
视频演示:https://www.youtube.com/watch?v=Z9I4UJUBrrY
能力清单:这瓶「毒素」能做什么
默认情况下,toxssin 的 JavaScript 毒药会自动传播到网页的元素和信息中,滥用 XMLHttpRequest 对象来拦截:
- • cookies(如果 HttpOnly 不存在);
- • 击键(从技术上讲,是一个活动的键盘记录器);
- • 粘贴事件;
- • 输入变化事件;
- • 文件选择;
- • 表单提交;
- • 服务器响应(表单提交或单击针对不同页面而不是同一页面内部部分的超链接);
- • 表格数据(静态以及页面加载完成后表格的更新)。
最重要的是,toxssin:
- 1. 尝试创建 XSS 持久性——在用户浏览网站时通过拦截 http 请求和响应并重写文档,产生导航的错觉,而实际上文档的位置从未改变;
- 2. 支持会话管理——可以使用它同时利用多个目标,例如通过运行基于 XSS 的网络钓鱼活动或利用存储型 XSS;
- 3. 支持针对会话执行自定义 JS 脚本——浏览器被挂钩(hooked)后,可以对其运行自定义 JS 脚本;
- 4. 自动记录每个会话。
安装与使用
git clone https://github.com/t3l3machus/toxssin
cd ./toxssin
pip3 install -r requirements.txt
要启动 toxssin.py,您需要提供 ssl 证书和私钥文件。
如果您不拥有具有受信任证书的域,则可以通过以下命令颁发和使用自签名证书(尽管这不会让您走得太远):
openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365
强烈建议使用受信任的证书运行 toxssin(见下文「如何获得可信证书」)。也就是说,您可以像这样启动 toxssin 服务器:
python3 toxssin.py -u https://your.domain.com -c /your/certificate.pem -k /your/privkey.pem
更多内容请访问该项目的 wiki。
XSS 利用障碍:实战中的四道坎
根据作者经验,尝试包含外部 JS 脚本的跨站脚本攻击存在 4 个主要障碍:
- 1. “Mixed Content”(混合内容)错误——可以通过 https 提供 JavaScript 负载来解决(即使使用自签名证书)。
- 2. “NET::ERR_CERT_AUTHORITY_INVALID” 错误——表示服务器的证书不受信任/已过期,可以通过使用受信任的颁发机构颁发的证书来绕过。
- 3. 跨源资源共享(CORS)——由 toxssin 服务器适当处理。
- 4. Content-Security-Policy(CSP)——将 script-src 设置为特定域的标头会阻止加载具有跨域 src 的脚本。Toxssin 依赖
eval()函数来传递其毒物,因此,如果网站具有 CSP 并且在 script-src 指令中未指定 unsafe-eval 源表达式,攻击很可能会失败(作者正在研究第二种毒物传递方法来解决此问题)。
注意:当目标网站通过 http 托管且 JavaScript 负载通过 https 托管时,当然可能会发生”混合内容”错误。这将 toxssin 的范围限制为仅 https 网站,因为(默认情况下)toxssin 仅使用 ssl 启动。
如何获得可信证书
免费注册域名
可以在 freenom 上搜索免费选项。正确地做到这一点有点棘手,建议跟随作者推荐的教学视频。另外,如果是第一次创建帐户,请确保您选择的国家/地区与您的 IP 地址匹配,否则可能会出现错误。
标准(付费)方式
从注册服务商购买域名(例如 namecheap.com)。最经济的方法是搜索随机字符串域名(例如 “fvcm98duf”)并选择不太流行的 TLD,例如 .xyz,因为它们每年的费用可能约为 3 美元。
获取受信任的证书
购买域名后,可以使用 certbot(Let’s Encrypt)在 5 分钟或更短的时间内获得可信证书:
- 1. 在域名的 DNS 设置中附加一条 A 记录,使其指向您的服务器 IP;
- 2. 遵循 certbot 官方说明。
提示:不要自行安装和运行 certbot,您可能会遇到意外错误。严格遵循官方说明。
变更日志与未来计划
2022-06-19 — 添加了 exec 提示命令(现在可以针对会话执行自定义 JS 脚本)。
2022-06-23 — 添加了两个简单的”脏”脚本作为测试 exec 提示命令的模板。还修复了 cmd 提示符的向后历史记录访问并做了一些改进。
未来:想法是让它更锋利、更可靠并扩展其能力。目前,作者正在努力改进文件捕获。
🗂️ 项目结构(tree 树格式索引)
toxssin/
├── toxssin.py # 主程序:https 服务器 + 命令行接口(启动需 -u/-c/-k 参数)
├── toxin.js # 核心 JS 恶意负载:拦截 cookies/击键/表单/响应,创建持久性
├── handler.js # 处理器:配合 toxin.js 的流量解释逻辑
├── custom_scripts/ # 自定义 JS 脚本目录(含 scare.js,可对挂钩会话执行)
├── requirements.txt # Python 依赖
├── Screenshots/ # 项目截图
├── LICENSE # MIT 许可证
└── README.md # 项目文档
文件信息速查
| 项目 | 说明 | | — | — | | 语言构成 | Python 63.3% / JavaScript 36.7% | | 许可证 | MIT | | Stars / Forks | 1.5k / 201 | | 贡献者 | t3l3machus (Panagiotis Chartas) | | 发布版本 | 无正式 Release | | 最近更新 | toxssin.py 更新(75a739f,去年) |
再次强调:使用此工具针对您没有明确测试权限的 Web 应用程序是非法的。请仅在授权渗透测试场景中使用。
项目地址:github.com/t3l3machus/toxssin
本文内容整理自 toxssin 项目 README(MIT License),遵循许可证授权整理发布。
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:网安之家-CyberHomestead 网安之家 网安之家《XSS 不只能弹个框:这款开源「毒素」让恶意脚本在浏览器里安家落户》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。











评论