Ir al contenido

Condiciones de carrera y contrabando HTTP ​

Condiciones de carrera / Contrabando HTTP ofrece dos herramientas especializadas para ataques HTTP sensibles a los tiempos y a nivel de protocolo.

Condiciones de carrera ​

La pestaña Condiciones de carrera envía varias copias de una solicitud simultáneamente al mismo endpoint y permite comparar las respuestas y los tiempos de las ejecuciones en paralelo.

Cuándo usarla ​

  • TOCTOU (tiempo de comprobación/tiempo de uso): prueba si las solicitudes concurrentes pueden intercalarse entre una comprobación y una operación de cambio de estado.
  • Manipulación de cuentas: envía cambios de saldo, canjes de cupones u operaciones con límites de manera concurrente para comprobar si se produce doble gasto o un exceso de canjes.
  • Elusión de límites de votos o de tasa: confirma si los límites por usuario se aplican de forma atómica.

Ejecución de una prueba de condiciones de carrera ​

  1. Crea la solicitud objetivo en la pestaña Condiciones de carrera o envíala a ella.
  2. Establece el valor de concurrencia: cuántas copias se enviarán en paralelo.
  3. Haz clic en Enviar prueba de carrera. Todas las copias se envían lo más simultáneamente posible.
  4. Revisa la tabla de respuestas: código de estado, cuerpo y tiempo transcurrido para cada copia.
  5. Las diferencias entre respuestas (distintos códigos de estado, distintos cuerpos de respuesta, éxito inesperado en las copias 2+) indican una ventana de carrera.

Condiciones de carrera con un único paquete HTTP/2 ​

Cuando el objetivo admita HTTP/2, activa el modo HTTP/2. HTTP/2 multiplexa todas las solicitudes en paralelo sobre una conexión, lo que elimina la variación de los tiempos de red y hace más fiable su llegada concurrente al servidor.

Contrabando de solicitudes HTTP ​

La pestaña Contrabando HTTP prueba cómo gestiona un servidor las cabeceras ambiguas Content-Length y Transfer-Encoding para detectar desincronización entre el frontend y el backend.

Contexto ​

Cuando un proxy inverso y un servidor backend discrepan sobre dónde termina una solicitud y empieza la siguiente, un prefijo introducido mediante contrabando desde la solicitud A puede anteponerse a la solicitud B. El impacto abarca desde el envenenamiento de caché hasta la elusión de autenticación y la inyección de solicitudes arbitrarias.

Variantes de desincronización ​

VarianteDescripción
CL.TEEl frontend usa Content-Length; el backend usa Transfer-Encoding
TE.CLEl frontend usa Transfer-Encoding; el backend usa Content-Length
TE.TEAmbos usan Transfer-Encoding, pero responden de manera distinta a una cabecera ofuscada

Ejecución de un sondeo de contrabando de solicitudes ​

  1. Selecciona el endpoint objetivo en la pestaña Contrabando HTTP.
  2. Elige la variante de desincronización que quieras probar.
  3. Haz clic en Enviar sondeo. La herramienta envía la solicitud preparada y mide la respuesta.
  4. Un tiempo de espera agotado o una respuesta inesperada en la segunda solicitud de la secuencia indica una posible desincronización.
  5. Confírmalo manualmente antes de crear un hallazgo; se producen falsos positivos cuando las condiciones de red provocan un tiempo de espera agotado que no está relacionado con el sondeo.

Software propietario. Todos los derechos reservados.