Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

ЛентыКонтактыКонфиденциальность© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
h2spacex — HTTP/2 Last Frame Synchronization (также известная как Single Packet Attack) низкоуровневая библиотека / инструмент на основе Scapy + Exploit Timing Attacks | Kitploit
Инструменты/GitHubGitHub/nxenon/h2spacex
Сниффинг и анализ пакетовЭксплуатацияЭксплуатация веб-приложенийВеб-безопасностьФаззингСетевая безопасностьТестирование на ПроникновениеУтилиты и фреймворкиСтатьи и Исследования
GitHubnxenon/h2spacex

h2spacex

HTTP/2 Last Frame Synchronization (также известная как Single Packet Attack) низкоуровневая библиотека / инструмент на основе Scapy + Exploit Timing Attacks

2291943 месяцев назадПроверено Kitploit
РепозиторийСайт

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

H2SpaceX   H2SpaceX

pypi: 1.2.2 Python: 3.8.8 License: GPL v3

Низкоуровневая библиотека HTTP/2 на основе Scapy, которую можно использовать для Single Packet Attack (состояние гонки в H2)

  • Эта библиотека была частью академического исследования под названием QUIC-er Races: HTTP/3 won’t save you from TOCTOU vulnerabilities.

Погружение в статью о Single Packet Attack

Я написал статью и опубликовал её в InfoSec Write-ups:

  • Dive into Single Packet Attack

TODO

  • Single Packet Attack - POST
    • реализовать
  • Single Packet Attack - GET
    • Метод Content-Length: 1
    • POST-запрос с заголовком x-override-method: GET
  • Разбор ответов
    • реализовать
    • реализовать многопоточный парсер ответов
    • добавить время ответа в наносекундах для timing-атак
    • Декомпрессия тела
      • gzip
      • br
      • deflate
  • Прокси
    • Socks5 Proxy

Журнал изменений и бета-версии

  • 1.2.2

    • упаковка: конфигурация сборки объединена в pyproject.toml, а setup.py удалён
      • исправлены некорректные секции [options], чтобы обнаружение пакетов было определено правильно
      • добавлен extra dev (twine), который был потерян из-за опечатки в старом setup.py
    • очистка кода
      • удалён неиспользуемый импорт и избыточный вызов нормализации заголовков в построителе GET-запросов
      • GET-запросы теперь учитывают check_headers_lowercase=False (согласованно с другими методами запросов)
    • добавлены tests/ (модульные тесты для утилит работы с заголовками) и CONTRIBUTING.md (руководство по сборке и релизу)
  • 1.2.1

    • объединён PR-6
      • реализован setup_connection для H2Connection (без TLS)
    • объединён PR-7
      • нормализация имён HTTP-заголовков с использованием Parser вместо regex
    • исправлен Issue 8
      • проблема разбора необработанных фреймов данных (пакетов)

Дополнительные исследования

Некоторые из следующих утверждений — это лишь идеи, которые не тестировались и не реализованы.

  • Больше запросов в одном пакете
    • Увеличить MSS (идея James Kettle)
    • TCP-пакеты не по порядку (идея James Kettle)
    • IP-фрагментация
  • Проксирование запроса Single Packet через SOCKS
  • Single Packet Attack для GET-запросов
    • Метод Content-Length: 1 (идея James Kettle)
    • Метод x-override-method: GET (идея James Kettle)
    • Индексирование HPACK-заголовков для уменьшения размера GET-запросов
    • Фрейм HEADERS без флага END_HEADER
    • Фрейм HEADERS без некоторых псевдозаголовков

Установка

H2SpaceX работает с Python 3 (предпочтительно: >=3.8.8)

pip install h2spacex

Ошибка при установке

если вы получаете ошибки scapy:

pip install --upgrade scapy

Быстрый старт

Вы можете импортировать HTTP/2 TLS Connection и настроить соединение. После настройки соединения вы можете делать другие вещи:

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

Примеры

См. примеры, которые содержат некоторые примеры race condition от Portswigger.

Страница примеров

Улучшенный метод Single Packet Attack (Black Hat 2024) для timing-атак

James Kettle представил улучшенную версию Single Packet Attack на Black Hat 2024 для timing-атак:

Impvoved Version Image

Вы можете легко реализовать этот метод с помощью метода send_ping_frame().

См. эту Wiki и часть Parse Response (Threaded) + Response Times for Timing Attacks:

  • New Method README (WIKI)

Improved Version of SPA Sample Exploit

Ссылки по улучшенному методу:

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

Ссылки и ресурсы

  • James Kettle DEF CON 31 Presentation
  • Portswigger Research Page
  • HTTP/2 in Action Book

Также я почерпнул некоторые идеи из ранее разработанной библиотеки h2tinker.

И наконец, ещё раз спасибо James Kettle за непосредственную помощь и указание на некоторые другие техники.

Скачать инструмент