
Estensione di Burp Suite che intercetta le richieste e le invia tramite HTTP/3, convertendo le risposte per Burp, con supporto per richieste kettled e controlli di capacità HTTP/3.
Un'estensione di Burp Suite che invia richieste su HTTP/3.
Burp non supporta HTTP/3 nativamente. Questa estensione implementa uno stack HTTP/3, intercetta tutte le richieste, le converte e le invia su HTTP/3 e poi riconverte la risposta in una versione HTTP che Burp è in grado di comprendere.
Disponibile nel BAPP Store.
Compilalo tu stesso:
./gradlew jar # -> build/libs/HTTP3-Adapter-0.0.1.jar
In modalità Explicit HTTP/3 only aggiungi un header X-Http3:
GET /admin HTTP/1.1
Host: example.com
X-Http3: 1
In modalità Always HTTP/3 where possible, qualsiasi traffico verrà adattato se l'applicazione supporta HTTP/3
Se vuoi sapere se più host nella tua cronologia del proxy supportano HTTP/3, puoi selezionarli e usare l'opzione del menu contestuale Check HTTP/3 Support che riporta i risultati nell'organizer.
Settings -> Extensions -> HTTP/3 Adapter
| Impostazione | Predefinito | Note |
|---|---|---|
| Mode | Explicit HTTP/3 only | Passa tra le due modalità menzionate sopra |
| Handshake timeout (ms) | 10000 | |
| Request timeout (ms) | 15000 | |
| Reuse connections | on | |
| Log exchanges to Output | off | Scrive ogni richiesta e risposta adattata nel pannello Output. |
| Show unsupported origins tab | off | Vedi sotto. |
Strip Connection, Keep-Alive, Proxy-Connection, Transfer-Encoding, Upgrade | on | HTTP/3 vieta questi header, deseleziona per inviarli deliberatamente. |
| Verify TLS certificates | off | Corrisponde al comportamento predefinito di Burp verso l'upstream. |
Questa scheda ti mostrerà quali host hanno fallito l'handshake HTTP/3 QUIC. Puoi svuotare questa lista per riprovare se hai una connessione instabile. La scheda è nascosta per impostazione predefinita, ma può essere abilitata nel pannello delle impostazioni.
Proprio come in HTTP/2, le richieste possono essere kettled.
Aggiungi un header X-Kettled: 1 insieme all'header X-Http3: 1 e il blocco di header viene inviato esattamente come scritto. I nomi mantengono il loro case, nulla viene rimosso, Host non viene ripiegato in :authority, e queste sequenze di escape vengono decodificate
per prime:
| Escape | Byte |
|---|---|
^~ | CR LF |
^r | CR |
^n | LF |
^0 | NULL |
^s | spazio |
^xNN | qualsiasi byte, due cifre esadecimali |
^^ | un ^ letterale |
POST /x HTTP/1.1
X-Http3: 1
X-Kettled: 1
:method: BREW
content-length: 10
foo: bar^~transfer-encoding:^schunked
0
hello