Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
h2spacex — 基于 Scapy 的 HTTP/2 最后一帧同步(也称为单包攻击)低级库/工具 + 利用时序攻击 | Kitploit
工具/GitHubGitHub/nxenon/h2spacex
数据包嗅探与分析漏洞利用Web应用程序漏洞利用Web安全模糊测试网络安全渗透测试实用工具与框架论文与研究
GitHubnxenon/h2spacex

h2spacex

基于 Scapy 的 HTTP/2 最后一帧同步(也称为单包攻击)低级库/工具 + 利用时序攻击

229193个月前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
查看仓库
网站
分享

H2SpaceX   H2SpaceX

pypi: 1.2.2 Python: 3.8.8 License: GPL v3

基于 Scapy 的 HTTP/2 底层库,可用于单包攻击(H2 上的竞态条件)

  • 该库是一项学术研究的一部分,研究标题为 QUIC-er Races: HTTP/3 won’t save you from TOCTOU vulnerabilities。

深入单包攻击文章

我写了一篇文章并发表在 InfoSec Write-ups 上:

  • Dive into Single Packet Attack

TODO

  • 单包攻击 - POST
    • 实现
  • 单包攻击 - GET
    • Content-Length: 1 方法
    • 带 x-override-method: GET 头的 POST 请求
  • 响应解析
    • 实现
    • 实现多线程响应解析器
    • 为计时攻击添加纳秒级响应时间
    • 响应体解压缩
      • gzip
      • br
      • deflate
  • 代理
    • Socks5 代理

更新日志与 Beta 版本

  • 1.2.2

    • 打包:将构建配置整合到 pyproject.toml 并移除 setup.py
      • 修复了无效的 [options] 部分,使包发现定义正确
      • 暴露了旧 setup.py 因拼写错误而遗漏的 dev extra(twine)
    • 代码清理
      • 移除了未使用的导入以及 GET 请求构建器中冗余的头部规范化调用
      • GET 请求现在遵循 check_headers_lowercase=False(与其他请求方法一致)
    • 添加了 tests/(头部工具类的单元测试)和 CONTRIBUTING.md(构建与发布指南)
  • 1.2.1

    • 合并了 PR-6
      • 为 H2Connection 实现 setup_connection(无 TLS)
    • 合并了 PR-7
      • 使用 Parser 而非正则表达式规范化 HTTP 头部名称
    • 修复了 Issue 8
      • 原始数据帧(数据包)的解析问题

更多研究

以下部分陈述仅为想法,尚未测试或实现。

  • 单包中的更多请求
    • 增大 MSS(James Kettle 的想法)
    • 乱序 TCP 数据包(James Kettle 的想法)
    • IP 分片
  • 通过 SOCKS 代理单包请求
  • 针对 GET 请求的单包攻击
    • Content-Length: 1 方法(James Kettle 的想法)
    • x-override-method: GET 方法(James Kettle 的想法)
    • 索引 HPACK 头部以缩小 GET 请求
    • 不带 END_HEADER 标志的 HEADERS 帧
    • 不带某些伪头部的 HEADERS 帧

安装

H2SpaceX 适用于 Python 3(推荐:>=3.8.8)

pip install h2spacex

安装错误

如果你遇到 scapy 错误:

pip install --upgrade scapy

快速开始

你可以导入 HTTP/2 TLS 连接并建立连接。建立连接后,你可以做其他事情:

from h2spacex import H2OnTlsConnection

h2_conn = H2OnTlsConnection(
    hostname='http2.github.io',
    port_number=443,
    ssl_log_file_path="PATH_TO_SSL_KEYS.log"  # optional (if you want to log ssl keys to read the http/2 traffic in wireshark)
)

h2_conn.setup_connection()
...

更多示例见 Wiki 页面

示例

查看包含一些 Portswigger 竞态条件示例的示例。

示例页面

增强型单包攻击方法(Black Hat 2024)用于计时攻击

James Kettle 在 Black Hat 2024 上介绍了用于计时攻击的改进版单包攻击:

Impvoved Version Image

你可以使用 send_ping_frame() 方法轻松实现此方法。

参见此 Wiki 以及 Parse Response (Threaded) + Response Times for Timing Attacks 部分:

  • 新方法 README (WIKI)

改进版 SPA 示例漏洞利用

改进方法的参考:

  • Listen to the whispers: web timing attacks that actually work

参考与资源

  • James Kettle DEF CON 31 演讲
  • Portswigger 研究页面
  • HTTP/2 in Action 书籍

我还从之前开发的库 h2tinker 中获得了一些想法。

最后,再次感谢 James Kettle 的直接帮助并指出了一些其他技术。

下载工具