Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
RatRace — Una herramienta CLI ligera para detectar y explotar sistemáticamente condiciones de carrera en aplicaciones web, APIs y servicios modernos. | Kitploit
Herramientas/GitHubGitHub/bogdanticu88/ratrace
Escáneres de VulnerabilidadesExplotaciónScripting y AutomatizaciónPruebas de Seguridad de APIsSeguridad WebFuzzingPruebas de PenetraciónDevSecOps
GitHubbogdanticu88/ratrace

RatRace

Una herramienta CLI ligera para detectar y explotar sistemáticamente condiciones de carrera en aplicaciones web, APIs y servicios modernos.

Ver Repositorio
1020hace 6 mesesAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

RatRace

RatRace - Kit de pruebas de condiciones de carrera

Una herramienta CLI ligera para detectar y explotar sistemáticamente condiciones de carrera en aplicaciones web, APIs y servicios modernos.



Go Version License Status Platform Security Build


Qué problema resuelve

Las condiciones de carrera representan una de las vulnerabilidades de seguridad de mayor impacto en las aplicaciones modernas, sin embargo siguen estando mal cubiertas por los escáneres automatizados. Mientras que herramientas como Nuclei, ffuf y sqlmap sobresalen en encontrar vulnerabilidades estáticas, son fundamentalmente ciegas a problemas basados en concurrencia.

Los pentesters de hoy se enfrentan a una elección: escribir manualmente scripts desechables para cada compromiso, o saltarse las pruebas de condiciones de carrera. Ninguna opción es escalable ni profesional.

RatRace resuelve esto proporcionando un flujo de trabajo pulido y repetible para las pruebas de condiciones de carrera, transformando lo que antes era scripting ad hoc en un proceso sistemático que se integra con pipelines CI/CD y genera informes profesionales.

Impacto en el mundo real

Las vulnerabilidades de condiciones de carrera aparecen con frecuencia en áreas de alto impacto:

  • Comercio electrónico: Pedidos duplicados, sobreventa de inventario, acumulación de descuentos
  • Fintech: Transferencias dobles, escalada de privilegios por carrera, repetición de transacciones
  • Autenticación: Agotamiento de tokens, fijación de sesión, restablecimientos de contraseña concurrentes
  • Límite de tasa: Bypass mediante solicitudes concurrentes, abuso distribuido

Estos errores consistentemente obtienen las mayores recompensas en programas de bug bounty porque amenazan directamente los ingresos del negocio y la confianza del cliente.


Capacidades principales

Pruebas basadas en plantillas

Define escenarios de carrera una vez en YAML, reutilízalos entre proyectos. El formato refleja las plantillas de Nuclei para familiaridad:

id: checkout-race
info:
  name: Checkout Duplicate Order Race
  severity: critical
race:
  mode: burst
  concurrency: 20
  request:
    method: POST
    path: /api/v1/checkout
    headers:
      Authorization: "Bearer {{session}}"
    body: '{"item_id": "SKU-001"}'
validate:
  follow_up:
    method: GET
    path: /api/v1/orders?user={{user_id}}
  expect:
    json_field: "orders.length"
    condition: equals
    value: 1

Múltiples modos de ataque

Modo Burst — Solicitudes paralelas basadas en goroutines con sincronización precisa (estable, listo para producción)

  • Lanza N goroutines que se sincronizan con precisión de microsegundos
  • Ideal para la mayoría de aplicaciones con ventanas de carrera >5ms

Sincronización de último byte — Ataque a nivel TCP HTTP/1.1 (implementación lista, fase de pruebas)

  • Mantiene todas las conexiones en el último byte del cuerpo de la solicitud
  • Liberación mediante broadcast close() para ventanas sub-milisegundo
  • Efectivo contra objetivos balanceados de carga y con límite de tasa

Paquete único — Ataque basado en tramas HTTP/2 (implementación lista, fase de pruebas)

  • Envía todas las solicitudes en un solo segmento TCP
  • Aprovecha la multiplexación para una recepción casi simultánea por el servidor
  • Evita algunos mecanismos de limitación de tasa

Validación inteligente

RatRace automáticamente:

  • Huellas digitales de respuestas mediante código de estado + hash del cuerpo para detectar anomalías
  • Agrupa resultados para identificar diferencias estadísticamente significativas
  • Calcula puntuaciones de confianza basadas en la frecuencia y magnitud de las anomalías
  • Ejecuta solicitudes de seguimiento para confirmar cambios de estado (ej., "¿realmente se compró el artículo dos veces?")
  • Soporta validación condicional con operadores: equals, not_equals, greater_than, contains

Integración en el flujo de trabajo

Importar solicitudes existentes:

# Desde comandos curl
ratrace import --curl 'curl -X POST https://api.example.com/checkout ...' -o template.yaml

# Desde archivos HAR exportados de Burp
ratrace import --har session.har -o template.yaml

Automatización CI/CD:

ratrace race -u $TARGET -t template.yaml --silent
echo $?  # Código de salida 10 = carrera encontrada, 0 = limpio

Informes profesionales:

# JSON para automatización
ratrace race -u $TARGET -t template.yaml -o results/

# Informes HTML (planeado V2)
ratrace report --input results.json --format html

Instalación

Desde el código fuente

git clone https://github.com/bogdanticu88/ratrace.git
cd ratrace
go build ./cmd/ratrace
./ratrace --help

Requisitos: Go 1.24+

Docker

docker build -t ratrace:latest .
docker run --rm -it ratrace:latest race -u https://api.example.com -t template.yaml

Uso

Inicio rápido: Ejecutar una prueba de carrera

# 1. Importar desde curl o usar plantilla existente
ratrace import --curl 'curl -X POST https://api.example.com/checkout ...' -o checkout.yaml

# 2. Ejecutar la carrera
ratrace race -u https://api.example.com -t checkout.yaml -m burst -c 20

# 3. Revisar hallazgos
# La salida muestra:
# 🔴 [CRITICAL] Checkout Duplicate Order Race
#     Tasa de anomalía: 91.7%
#     Confianza:   84%

Ejemplo: Carrera de pedido en comercio electrónico

ratrace race \
  -u https://shop.example.com \
  -t examples/templates/checkout-race.yaml \
  -m burst \
  -c 25 \
  --output results/

Ejemplo: Modo silencioso (para CI/CD)

# Ejecuta sin registros detallados, sale con código semántico
ratrace race -u https://api.example.com -t template.yaml --silent

# Verificar código de salida
if [ $? -eq 10 ]; then
  echo "¡Condición de carrera encontrada!"
  exit 1
fi

Referencia de comandos

race — Ejecutar ataque de carrera

ratrace race -u <url> -t <template> [options]

Options:
  -m, --mode string          burst|lastbyte|singlepacket (por defecto desde plantilla)
  -c, --concurrency int      Cantidad de goroutines (por defecto 20)
  -H, --header strings       Cabeceras personalizadas (repetible)
  -x, --proxy string         URL del proxy para solicitudes
  -o, --output string        Directorio de salida para resultados
  --timeout duration         Tiempo de espera de solicitud (por defecto 10s)
  --insecure                 Omitir verificación de certificado TLS
  --dry-run                  Analizar plantilla y salir
  --silent                   Suprimir registros, mostrar solo hallazgos

import — Convertir solicitudes a plantillas

ratrace import [--curl <command> | --har <file>] -o <output.yaml>

Convierte solicitudes existentes (comandos curl o exportaciones HAR) en plantillas RatRace.
Útil para integrar con flujos de trabajo existentes.

report — Generar informes

ratrace report --input results.json --format [html|json] --output report.html

Genera informes legibles por humanos a partir de los resultados de las pruebas de carrera.

ratelimit — Probar bypass de límite de tasa

ratrace ratelimit -u <url> -c <concurrency>

Prueba si los endpoints son vulnerables a bypass concurrente del límite de tasa.

Formato de plantilla

Descargar herramienta