SQLi en operaciones DELETE vía parámetros GET — cuando el wrapper de BD "simplifica demasiado"
Un wrapper de base de datos casero (no un ORM, no PDO con prepared statements) con una función "conveniente" tipo:
Un wrapper de base de datos casero (no un ORM, no PDO con prepared statements) con una función "conveniente" tipo:
Todos los ataques de esta cheatsheet requieren estar en el mismo segmento L2 (misma VLAN/broadcast domain) que la víctima. ARP y DHCP son protocolos de broadcast; si estás en otra VLAN, los switches segmentan el tráfico y no verás las respuestas. Excepciones: si el tráfico pasa por un router que...
Session Fixation: el atacante impone un ID de sesión conocido a la víctima (antes de que autentique) y espera a que la víctima inicie sesión con ese ID. Causa raíz: el servidor no regenera el SID tras el login exitoso. Remediación: regenerar el token en cada cambio de privilegio (login,...
Un pipeline de CI/CD típicamente tiene: credenciales de despliegue a producción, llaves de firma de artefactos, tokens de acceso a repos privados, y a veces acceso directo a infraestructura cloud — todo concentrado en un solo lugar que además ejecuta código de terceros (dependencias, Actions,...
Un front controller PHP (server.php/index.php) de una intranet despachaba TODAS las peticiones POST a través de un patrón de "invocar la función que diga el cliente":
Adversary-in-the-Middle (AiTM) es un proxy que se sienta ENTRE la víctima y el sitio real durante todo el flujo de login — la víctima interactúa con lo que cree que es el sitio legítimo (incluso completando MFA con una llave física real), mientras el proxy retransmite cada paso al sitio real y...
WPA3-Personal usa SAE (Dragonfly), no hay handshake 4-way clásico. No se captura con airodump-ng. Vulnerabilidades conocidas: Ataque Drown-by-Design (CVE-2019-9494) y Downgrade a WPA2 (si el AP permite). En la práctica: si el AP soporta WPA3 y WPA2, degrada al cliente a WPA2 con un deauth y...
Requiere mismo número de columnas y tipos compatibles. Orden de descubrimiento:
Metadata: /.well-known/openid-configuration, /.well-known/oauth-authorization-server → grant_types, scopes, endpoints, jwks_uri. Leerlo SIEMPRE primero (delata grants asimétricos y scopes admin). Identificar flujo: authorization code (+PKCE), implicit (legacy), client_credentials, password...
Filtra por severidad: critical, high, medium, low, info. Combinable con -tags y -exclude-tags.
Barrido inicial sin tocar puertos, ideal para mapear la superficie antes de escanear:
Un flujo de compra de documentos/plantillas premium calculaba el total de la orden en el backend, pero un camino de lógica de "membresía"/"descuento" se activaba indebidamente y dejaba el total en $0 — y el endpoint de pago aceptaba completar la orden con total $0 sin pasar por ninguna pasarela...
Usar siempre un entorno Python con impacket actualizado (pipx install impacket o venv). Los scripts legacy en examples/ requieren la misma versión del repo. NetExec (nxc) reemplazó a CrackMapExec: pipx install netexec. El binario es nxc. Si hay restricciones de firewall/AV, priorizar wmiexec.py...
Hydra usa -l para usuario único, -L para diccionario de usuarios, -p para password única, -P para diccionario de passwords. El puerto se especifica con -s si no es el default. La velocidad se controla con -t (tareas paralelas) y -w (timeout en segundos). Siempre usa -f para detener al primer...
Antes de lanzar cualquier payload, mapea la arquitectura: identifica proxies, balanceadores y servidores (headers Via, X-Forwarded-For, Server, diferencias en manejo de timeout). NUNCA uses un payload agresivo contra un host en producción directamente sin confirmar el comportamiento con...
Siempre confirma el tipo antes de atacar.
Patrón típico: 4 pines alineados, a veces con silkscreen marcado (TX, RX, GND, VCC) o con puntos de prueba. Señales visibles en osciloscopio/multímetro: TX/RX: 0V en reposo (UART idle = HIGH, pero con pull-up a VCC si es 3.3V, verás ~3.3V cuando no transmite). GND: 0V continuo. Truco rápido:...
ffuf: el más flexible. Úsalo cuando necesites fuzzear múltiples posiciones (FUZZ en directorios, FUZZ en vhosts, FUZZ en parámetros, FUZZ en extensiones simultáneamente). Mejor rendimiento en filtrado. gobuster: estable y liviano para dir/vhost/dns simples. Menos falso positivo en entornos con...
Muchas plataformas SaaS multi-tenant exponen su REST API con un patrón /api/v1/orgs/{org_id}/<recurso>. El error más común no está en un solo endpoint, sino en la SUPERFICIE completa: basta con tener un token JWT válido de UN tenant (incluso una cuenta de prueba propia) para descubrir que...
Siempre ejecutar en este orden. No asumas que winPEAS encontró todo.
Ejecuta en orden para no perder contexto:
Priorizar enumeración de usuarios, shares y políticas de contraseñas antes de intentar fuerza bruta.
Dos variantes del mismo bug de fondo — ausencia de rate limit / límite de tamaño en endpoints de creación — con dos impactos de negocio muy distintos que vale la pena probar por separado.
Un pentest que solo demuestra "llegamos a Domain Admin" deja al cliente sin saber si su SOC HABRÍA detectado el camino recorrido. Documentar qué evento de Windows/qué señal debería haberse disparado en cada paso del playbook ofensivo convierte el hallazgo técnico en una conversación concreta de...
Java: base64 que empieza con rO0AB (o hex AC ED 00 05). Cookies/ViewState/parámetros/RMI/JMX. PHP: formato O:8:"ClassName":N:{...} (o a:/s:); a veces por phar:// en un sink de filesystem. Python pickle: base64 que empieza con gASV/gAJ/\x80\x04. .NET: TypeNameHandling en JSON.NET,...
Un servicio de eventos interno (events-service) — el mismo que alimenta el dashboard analítico del backoffice, NO la API de negocio principal — quedó accesible sin autenticación. Entre los tipos de evento capturados había uno de tipo spotlight:result_selected: cada vez que un empleado usaba el...
En sistemas de organismos públicos y municipales chilenos es un patrón recurrente que la contraseña inicial/por defecto de una cuenta sea EL PROPIO RUT del usuario (sin puntos ni guion, o con formato variable). En un engagement real se confirmó el patrón contra la cuenta de la máxima autoridad...
- Formato: `NNNNNNNN-DV`, DV = dígito verificador **módulo 11** (`0-9` o `K`). Se usa como username, id de cliente, y clave de búsqueda en casi todo servicio chileno → primer candidato a **IDOR / enumeración**. - Cálculo DV (para generar RUTs válidos en enumeración): serie `2,3,4,5,6,7` cíclica s...
Los WAFs decodifican una vez (o dos). Encadena capas para romper la normalización.
- **Proxy > Options**: `127.0.0.1:8080` por defecto. Para tráfico SSL, instala el certificado de CA de Burp en el cliente (o usa `-k` con curl). - **Intercept Off** por defecto en pruebas; usa `Ctrl+T` para toggle rápido de interceptación. - **History**: filtra por `MIME type`, `status code`, o e...
- Enviar un bloque cifrado modificado (cambiar 1 byte en el penúltimo bloque) y observar diferencias en códigos de estado (200 vs 500), mensajes de error, o tiempos de respuesta. - Endpoints comunes: `?data=...`, `?token=...`, cuerpos JSON con campos cifrados, cookies cifradas.
- Enviar la petición de confirmación de pago (`POST /api/checkout`) con un token de un solo uso (nonce) o con una actualización de stock/inventario. - Usar `Turbo Intruder` (Burp) con la extensión `race-single-packet-attack` para disparar todas las peticiones en el mismo paquete TCP.
1. **`alg: none`**: algunas librerías (mal configuradas o viejas) aceptan un token con el header `alg` en `none` y sin firma — si el servidor no verifica explícitamente que el algoritmo esperado coincide, el atacante forja cualquier payload sin conocer ningún secreto. 2. **Confusión de algoritmo ...
La vulnerabilidad existe cuando un subdominio apunta a un CNAME hacia un servicio externo (S3, Azure, Heroku, Github Pages, etc.) y el recurso destino fue liberado/eliminado. El atacante reclama el recurso y el CNAME sigue resolviendo.
Cuando un agente usa `search_web`, `read_file`, `fetch_url` o `query_db`, el contenido devuelto se concatena al contexto del LLM como si fuera instrucción. El objetivo es romper la confianza implícita: el modelo no distingue entre el bloque de datos y el prompt del sistema.
Payloads de traversal, wrappers de PHP y log poisoning para escalar un LFI a RCE.
Detección inicial, técnicas UNION/error/blind, y qué mirar antes de automatizar con sqlmap.
Contextos de inyección, payloads básicos y bypasses de filtros comunes para pruebas de XSS.