toxssin 是一款开源渗透测试工具,用于自动化利用跨站脚本(XSS)漏洞的过程。它包含一个 HTTPS 服务器,该服务器作为恶意 JavaScript 载荷(toxin.js)所产生流量的解释器。
该项目最初(现在仍然是)一项基于研究的创意尝试,旨在探索 XSS 漏洞可能带来的利用深度,仅使用原生 JavaScript、受信任的证书和一些廉价技巧。
免责声明:在未经明确许可的情况下,使用本工具针对 Web 应用进行测试是违法的。您应对使用本工具可能引起的任何麻烦负责。
https://www.youtube.com/watch?v=Z9I4UJUBrrY

更多截图请见此处。
默认情况下,toxssin 的 JavaScript 毒剂会自动在网页元素和信息中传播,滥用 XMLHttpRequest 对象来拦截:
更重要的是,toxssin:
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 获取更多信息。
根据我的经验,跨站脚本攻击尝试包含外部 JS 脚本时,有四大主要障碍:
Content-Security-Policy 标头中 script-src 仅设置为特定域名会阻止加载跨域脚本。Toxssin 依赖 eval() 函数来传递毒剂,因此若网站有 CSP 且 script-src 指令中未指定 unsafe-eval 源表达式,攻击很可能会失败(我正在研究第二种毒剂传递方法来解决此问题)。注意:当目标网站通过 HTTP 托管,而 JavaScript 载荷通过 HTTPS 提供时,自然会出现“混合内容”错误。这限制了 toxssin 仅适用于 HTTPS 网站,因为(默认情况下)toxssin 仅以 SSL 模式启动。
首先,您需要拥有一个域名。
您可以在 freenom 上搜索免费选项。正确操作有些技巧,建议您参考此教学 视频。另外,首次创建账户时,请确保所选国家与您的 IP 地址匹配,否则可能会出错。
从域名注册商(例如 https://www.namecheap.com/)购买域名。最经济的方式是搜索随机字符串域名(例如 "fvcm98duf"),并选择不太流行的顶级域名(如 .xyz),因为每年费用可能只需 3 美元左右。
购买域名后,您可以使用 certbot(Let's Encrypt)在 5 分钟或更短时间内获取受信任证书:
提示:不要自行安装和运行 certbot,您可能会遇到意外错误。请严格遵循说明。
2022-06-19 - 添加了 exec 提示命令(现在可以针对会话执行自定义 JS 脚本)。
2022-06-23 - 我添加了两个简单粗糙的脚本作为测试 exec 提示命令的模板。还修复了命令提示符的后向历史记录访问,并做了一些改进。
目标是将它做得更锐利、更可靠,并扩展其功能。目前,我正在改进文件捕获功能。