
Biblioteca/Ferramenta de baixo nível para Sincronização do Último Frame HTTP/2 (também conhecida como Ataque de Pacote Único) baseada em Scapy + Exploração de Ataques de Temporização
H2SpaceXBiblioteca de baixo nível HTTP/2 baseada em Scapy que pode ser usada para Single Packet Attack (Race Condition em H2)
Escrevi um artigo e o publiquei no InfoSec Write-ups:
1.2.2
pyproject.toml e removido setup.py
[options] inválidas para que a descoberta de pacotes seja definida corretamentedev (twine) que o erro de digitação do antigo setup.py havia removidocheck_headers_lowercase=False (consistente com outros métodos de requisição)tests/ (testes unitários para utilitários de cabeçalhos) e CONTRIBUTING.md (guia de build & release)1.2.1
Algumas das afirmações a seguir são apenas ideias e não foram testadas ou implementadas.
H2SpaceX funciona com Python 3 (preferencial: >=3.8.8)
pip install h2spacex
se você receber erros do scapy:
pip install --upgrade scapy
Você pode importar a Conexão HTTP/2 TLS e configurar a conexão. Após configurar a conexão, você pode fazer outras coisas:
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()
...
veja mais exemplos na Página Wiki
Veja exemplos que contêm alguns exemplos de race condition do Portswigger.
James Kettle introduziu uma versão aprimorada do Single Packet Attack na Black Hat 2024 para ataques de temporização:

Você pode implementar este método facilmente usando o método send_ping_frame().
Veja esta Wiki e a parte Parse Response (Threaded) + Response Times for Timing Attacks:
Improved Version of SPA Sample Exploit
Também obtive algumas ideias de uma biblioteca desenvolvida anteriormente h2tinker.
Por fim, agradeço novamente a James Kettle por ajudar diretamente e apontar algumas outras técnicas.