一个开源的XSS渗透测试工具——toxssin

作者:Sec-Labs | 发布时间:

目的

toxssin是一个开源的渗透测试工具,可以自动利用跨站脚本(XSS)漏洞的过程。它由一个https服务器组成,该服务器作为一个解释器,用于解释为该工具提供动力的恶意JavaScript有效载荷(toxin.js)所产生的流量。

这个项目开始是(现在仍然是)一个基于研究的创造性努力,以探索XSS漏洞可能通过使用vanilla JavaScript、可信的证书和廉价的技巧引入的可利用深度。

免责声明:该项目是相当新鲜的,还没有经过广泛测试。

视频介绍

 

 

6c35c58001211608

67e6afda97211652

956a37d682211659

能力

默认情况下,toxssin会拦截。

cookies(如果不存在HttpOnly)

  • 击键
  • 粘贴事件
  • 输入改变事件
  • 文件选择
  • 表格提交
  • 服务器响应
  • 表数据(静态以及更新)

最重要的是,toxssin:

  • 试图在用户浏览网站时,通过拦截http请求和响应并重写文件来保持XSS的持久性。
  • 支持会话管理,也就是说,你可以用它来利用反射和存储的XSS。
  • 支持针对会话的自定义JS脚本执行。
  • 自动记录每个会话。

安装和使用

git clone https://github.com/t3l3machus/toxssin
cd ./toxssin
pip3 install -r requirements

为了启动 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脚本的跨站脚本攻击时,有四个主要障碍。

  • 混合内容 "错误,这可以通过通过https提供JavaScript有效载荷来解决(即使有自签证书)。
  • "NET::ERR_CERT_AUTHORITY_INVALID "错误,这表明服务器的证书不受信任/过期,可以通过使用受信任的权威机构颁发的证书绕过。
  • 跨源资源共享(CORS),由 toxssin 服务器适当处理。
  • 将脚本来源设置为特定域的Content-Security-Policy头会阻止跨域脚本的加载。Toxssin依靠eval()函数来传递毒药,因此,如果网站有一个CSP,并且在script-src指令中没有指定unsafe-eval源表达式,攻击很可能会失败(我正在研究第二个毒药传递方法来解决这个问题)。

注意:当目标网站通过http托管,而JavaScript有效载荷通过https托管时,当然会出现 "混合内容 "错误。这限制了toxssin的范围,因为(默认情况下)toxssin只在ssl下启动。

如何获得有效证书

首先,你需要拥有一个域名。获得一个域名的最快和最经济的方法(据我所知)是通过廉价的域名注册商服务(例如:https://www.namecheap.com/)。搜索一个随机字符串的域名(如 "fvcm98duf"),并检查不太流行的顶级域名,如.xyz,因为它们可能每年花费3美元左右。

在你购买域名后,你可以使用certbot(Let's Encrypt)在5分钟或更短时间内获得一个可信的证书。

  • 在你的域名的DNS设置中添加一条A记录,使其指向你的服务器IP。
  • 按照certbots的官方说明

提示。不要自己安装和运行certbot,你可能会遇到意想不到的错误。坚持按照说明进行。

项目地址

https://github.com/t3l3machus/toxssin

 

标签:工具分享, XSS漏洞检测工具