
Libreria/strumento di basso livello per la sincronizzazione dell'ultimo frame HTTP/2 (nota anche come Single Packet Attack) basato su Scapy + attacchi di timing exploit
H2SpaceXLibreria HTTP/2 di basso livello basata su Scapy che può essere utilizzata per il Single Packet Attack (Race Condition su H2)
Ho scritto un articolo e l'ho pubblicato su 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
Alcune delle seguenti affermazioni sono solo idee e non sono state testate o implementate.
H2SpaceX funziona con Python 3 (preferibile: >=3.8.8)
pip install h2spacex
se ricevi errori da scapy:
pip install --upgrade scapy
Puoi importare la HTTP/2 TLS Connection e configurare la connessione. Dopo aver configurato la connessione, puoi fare altre cose:
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()
...
vedi altri esempi nella pagina Wiki
Vedi gli esempi che contengono alcuni esempi di race condition di Portswigger.
James Kettle ha introdotto una versione migliorata del Single Packet Attack al Black Hat 2024 per gli attacchi di timing:

Puoi implementare questo metodo facilmente usando il metodo send_ping_frame().
Vedi questa Wiki e la parte Parse Response (Threaded) + Response Times for Timing Attacks:
Improved Version of SPA Sample Exploit
Ho anche preso alcune idee da una libreria sviluppata in precedenza h2tinker.
Infine, grazie ancora a James Kettle per aver aiutato direttamente e aver indicato alcune altre tecniche.