GymTok:使用 Alt-Svc 头突破 TLS

主要观点:作者观看关于机会性加密危险的演讲后,尝试将其中的跨协议攻击思路制作成 CTF 挑战。挑战包含三个服务,均使用同一 TLS 证书,通过 Alt-Svc 头注入成为中间人攻击,利用压缩预言机泄露 FTP 密码,进行跨协议攻击(控制 FTP 中的 TLS 连接并伪造 HTTP 响应),最终解决挑战并发现 Firefox 相关漏洞获赏金。
关键信息:

  • 观看Why TLS is better without STARTTLS演讲,受启发制作 CTF 挑战。
  • 挑战包含 HTTPS、HTTP/2、FTP 服务,均在gymtok.social,使用同一证书。
  • 通过Alt-Svc头注入成为中间人,利用其特性让浏览器在不改变地址的情况下使用新服务。
  • 利用koa-compress中间件的 HTTP 压缩进行 CRIME 攻击,泄露 FTP 密码。
  • FTP 协议的被动模式及 opportunistic encryption,利用证书复用控制 TLS 连接并伪造 HTTP 响应。
  • Firefox 浏览器的 ALPN 检查在首次握手时生效,后续连接可接受不同协议,可借此绕过限制。
    重要细节:
  • 原始研究需中间人位置,作者连接Alt-Svc头与挑战,实现中间人攻击。
  • 挑战中各服务的端口及功能,如 HTTP 服务器的 TikTok 克隆、FTP 服务器的用户认证等。
  • CRIME 攻击原理及在挑战中的应用,通过比较请求大小检测密码猜测。
  • 跨协议攻击的步骤及遇到的 ALPN 阻碍和绕过方法。
  • 最终解决挑战的步骤及对相关漏洞和实践的思考。
阅读 7
0 条评论