主要观点:作者观看关于机会性加密危险的演讲后,尝试将其中的跨协议攻击思路制作成 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 阻碍和绕过方法。
- 最终解决挑战的步骤及对相关漏洞和实践的思考。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。