
Synchronisation de dernière trame HTTP/2 (également connue sous le nom d'attaque par paquet unique) bibliothèque/outil de bas niveau basé sur Scapy + Exploit Timing Attacks
H2SpaceXBibliothèque HTTP/2 de bas niveau basée sur Scapy, utilisable pour la Single Packet Attack (Race Condition sur H2)
J'ai écrit un article et l'ai publié sur InfoSec Write-ups :
1.2.2
pyproject.toml et suppression de setup.py
[options] invalides afin que la découverte des paquets soit définie correctementdev (twine) que la faute de frappe de l'ancien setup.py avait supprimécheck_headers_lowercase=False (cohérent avec les autres méthodes de requête)tests/ (tests unitaires pour les utilitaires d'en-têtes) et de CONTRIBUTING.md (guide de build et de release)1.2.1
Certaines des affirmations suivantes ne sont que des idées et ne sont ni testées ni implémentées.
H2SpaceX fonctionne avec Python 3 (préféré : >=3.8.8)
pip install h2spacex
si vous obtenez des erreurs de scapy :
pip install --upgrade scapy
Vous pouvez importer la connexion HTTP/2 TLS et établir la connexion. Après avoir établi la connexion, vous pouvez faire d'autres choses :
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()
...
voir plus d'exemples dans la page Wiki
Voir les exemples qui contiennent quelques cas de race condition de Portswigger.
James Kettle a présenté une version améliorée de la Single Packet Attack à la Black Hat 2024 pour les attaques temporelles :

Vous pouvez implémenter cette méthode facilement grâce à la méthode send_ping_frame().
Voir ce Wiki et la partie Parse Response (Threaded) + Response Times for Timing Attacks :
Improved Version of SPA Sample Exploit
J'ai également tiré quelques idées d'une bibliothèque précédemment développée h2tinker.
Enfin, merci encore à James Kettle pour son aide directe et pour avoir indiqué d'autres techniques.