
Sincronización del último frame de HTTP/2 (también conocida como Single Packet Attack) biblioteca/herramienta de bajo nivel basada en Scapy + Exploit Timing Attacks
H2SpaceXLibrería de bajo nivel HTTP/2 basada en Scapy que puede utilizarse para Single Packet Attack (Race Condition en H2)
Escribí un artículo y lo publiqué en InfoSec Write-ups:
1.2.2
pyproject.toml and removed setup.py
[options] sections so package discovery is defined correctlydev extra (twine) that the old setup.py typo had droppedcheck_headers_lowercase=False (consistent with other request methods)tests/ (unit tests for header utilities) and CONTRIBUTING.md (build & release guide)1.2.1
Algunas de las siguientes afirmaciones son solo ideas y no están probadas ni implementadas.
H2SpaceX funciona con Python 3 (preferiblemente: >=3.8.8)
pip install h2spacex
si obtienes errores de scapy:
pip install --upgrade scapy
Puedes importar la conexión HTTP/2 TLS y configurar la conexión. Después de configurar la conexión, puedes hacer otras cosas:
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()
...
ver más ejemplos en la Wiki Page
Ver ejemplos que contienen algunos ejemplos de race condition de Portswigger.
James Kettle presentó una versión mejorada de Single Packet Attack en Black Hat 2024 para ataques de temporización:

Puedes implementar este método fácilmente usando el método send_ping_frame().
Ver esta Wiki y la parte Parse Response (Threaded) + Response Times for Timing Attacks:
Improved Version of SPA Sample Exploit
También obtuve algunas ideas de una librería desarrollada previamente h2tinker.
Finalmente, gracias de nuevo a James Kettle por ayudar directamente y señalar algunas otras técnicas.