我们开发了一个新工具QuicDraw(H3),因为目前的HTTP/3竞态条件测试方法很糟糕。
我们刚刚发布了一个工具,解决了那些试图对HTTP/3进行模糊测试的人遇到的一个特别烦人的问题。
问题是,QUIC旨在防止网络瓶颈(队头阻塞),这固然有益,但它破坏了利用应用层竞态条件所需的基本时序。我们尝试了所有显而易见的解决方案,但QUIC的RFC实质上阻止了分片和其他低层网络优化。🤷♂️
因此,我们想出了一种方法,使用我们称之为Quic-Fin-Sync的技术,在QUIC流层对事物进行同步。
核心要点:
- 设置100多个请求,但为每个请求保留数据的最后一个字节。
- 服务器收到了99.9%的数据,但等待那最后一个字节。
- 我们通过一个UDP数据包,同时发送所有100多个请求的最后一个字节(以及关键的QUIC FIN标志)。
- 这个单一的数据包迫使服务器“近乎同时地”释放所有请求进行处理。在我们的测试中,它的效果远优于现有方法——我们成功地对一个存在漏洞的Keycloak设置进行了超过40次竞态条件攻击。
如果你正在对HTTP/3进行渗透测试,可以获取这个开源工具,并告诉我们你用它能攻破什么。完整的分析文章如下。
你在尝试测试QUIC/HTTP/3时遇到的最令人沮丧的事情是什么?