Vai al contenuto

Race e Smuggling ​

Race / Smuggling offre due strumenti specializzati per attacchi HTTP sensibili alla temporizzazione e a livello di protocollo.

Race condition ​

La scheda Race invia più copie di una richiesta simultaneamente allo stesso endpoint e consente di confrontare risposte e tempi tra le esecuzioni parallele.

Quando usarla ​

  • TOCTOU (momento del controllo/momento dell'uso): verifica se richieste concorrenti possono inserirsi tra un controllo e un'operazione che modifica lo stato.
  • Manipolazione degli account: invia modifiche del saldo, riscatti di coupon o operazioni soggette a limiti in modo concorrente per verificare doppie spese o riscatti in eccesso.
  • Aggiramento dei limiti di voto o frequenza: conferma se i limiti per utente sono applicati in modo atomico.

Eseguire un test di race condition ​

  1. Crea la richiesta bersaglio nella scheda Race o inviala a questa scheda.
  2. Imposta il valore di concorrenza, cioè il numero di copie da inviare in parallelo.
  3. Fai clic su Invia Race. Tutte le copie vengono inviate il più simultaneamente possibile.
  4. Esamina la tabella delle risposte: codice di stato, corpo e tempo trascorso per ogni copia.
  5. Le differenze tra le risposte (codici di stato diversi, corpi di risposta diversi, successo inatteso nelle copie 2+) indicano una finestra temporale sfruttabile per una race condition.

Race condition HTTP/2 con pacchetto singolo ​

Quando il bersaglio supporta HTTP/2, abilita la modalità HTTP/2. HTTP/2 multiplexa tutte le richieste parallele su una connessione, eliminando la variabilità dei tempi di rete e rendendo più affidabile l'arrivo concorrente al server.

HTTP request smuggling ​

La scheda Smuggling verifica come un server gestisce le intestazioni ambigue Content-Length e Transfer-Encoding per rilevare desincronizzazioni tra frontend e backend.

Contesto ​

Quando un proxy inverso e un server backend non concordano su dove termina una richiesta e inizia la successiva, un prefisso introdotto tramite smuggling dalla richiesta A può essere anteposto alla richiesta B. L'impatto va dall'avvelenamento della cache all'aggiramento dell'autenticazione e all'iniezione di richieste arbitrarie.

Varianti di desincronizzazione ​

VarianteDescrizione
CL.TEIl frontend usa Content-Length; il backend usa Transfer-Encoding
TE.CLIl frontend usa Transfer-Encoding; il backend usa Content-Length
TE.TEEntrambi usano Transfer-Encoding, ma rispondono diversamente a un'intestazione offuscata

Eseguire una sonda di smuggling ​

  1. Seleziona l'endpoint bersaglio nella scheda Smuggling.
  2. Scegli la variante di desincronizzazione da verificare.
  3. Fai clic su Invia sonda. Lo strumento invia la richiesta preparata e misura la risposta.
  4. Un timeout o una risposta inattesa alla seconda richiesta della sequenza indica una possibile desincronizzazione.
  5. Conferma manualmente prima di creare un rilievo di sicurezza: si verificano falsi positivi quando le condizioni di rete causano un timeout non correlato alla sonda.

Software proprietario. Tutti i diritti riservati.