
HTTP/2 Last Frame Synchronization (также известная как Single Packet Attack) низкоуровневая библиотека / инструмент на основе Scapy + Exploit Timing Attacks
H2SpaceXНизкоуровневая библиотека HTTP/2 на основе Scapy, которую можно использовать для Single Packet Attack (состояние гонки в H2)
Я написал статью и опубликовал её в InfoSec Write-ups:
1.2.2
pyproject.toml, а setup.py удалён
[options], чтобы обнаружение пакетов было определено правильноdev (twine), который был потерян из-за опечатки в старом setup.pycheck_headers_lowercase=False (согласованно с другими методами запросов)tests/ (модульные тесты для утилит работы с заголовками) и CONTRIBUTING.md (руководство по сборке и релизу)1.2.1
Некоторые из следующих утверждений — это лишь идеи, которые не тестировались и не реализованы.
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.
James Kettle представил улучшенную версию Single Packet Attack на Black Hat 2024 для timing-атак:

Вы можете легко реализовать этот метод с помощью метода send_ping_frame().
См. эту Wiki и часть Parse Response (Threaded) + Response Times for Timing Attacks:
Improved Version of SPA Sample Exploit
Также я почерпнул некоторые идеи из ранее разработанной библиотеки h2tinker.
И наконец, ещё раз спасибо James Kettle за непосредственную помощь и указание на некоторые другие техники.