técnica
etapa: discover
3 min de lectura
Pruebas de seguridad de web y API
La mayoría de los hallazgos web graves vienen de una lista corta de preguntas: quién puede ver qué, quién puede cambiar qué y qué pasa con una entrada distinta de la que el desarrollador esperaba. Un proxy y dos cuentas responden a la mayoría de ellas.
Burp SuiteOWASP ZAPffuf (authorized content discovery)PostmancurlNuclei (authorized targets)
Preparación
- Pasa el navegador por un proxy de interceptación (Burp, ZAP) para ver, reenviar y modificar cada solicitud.
- Crea al menos dos cuentas de prueba con el mismo nivel de privilegio y una de nivel superior si el alcance lo permite. Los bugs de autorización se encuentran comparando cuentas.
- Mapea la aplicación: páginas, rutas de la API, parámetros, roles, cargas de archivos, integraciones. El esquema de la API (OpenAPI) es un regalo cuando existe.
- Anota qué solicitudes están autenticadas y cómo: cookie, bearer token, clave de API.
Una lista de verificación de pruebas
Recorre las categorías del y de la Web Security Testing Guide. El dominio de este sitio sobre el OWASP Top 10 muestra la corrección de cada una; aquí está cómo buscarlas.
- Control de acceso: reenvía las solicitudes de la cuenta A con el token de la cuenta B; cambia ids; llama rutas de admin como usuario normal; prueba métodos que la interfaz nunca usa.
- Autenticación y sesión: en el inicio de sesión y el restablecimiento, expiración y rotación de sesión, flags de cookie, validación de token.
- Inyección: envía caracteres y tipos inesperados a cada parámetro, encabezados y campos JSON, y observa errores o cambios de comportamiento.
- Lógica de negocio: salta pasos, repite pasos, cambia cantidades y precios, dispara dos solicitudes al mismo tiempo (race condition).
- Configuración incorrecta: errores detallados, endpoints de depuración, listado de directorios, permisivo, encabezados ausentes.
- Manejo de archivos: verificaciones de tipo y tamaño, manejo de rutas, dónde se almacenan y se sirven las cargas.
Ejemplo: una verificación de autorización con dos cuentas
Automatiza la comparación repetitiva y mantén la prueba de solo lectura. Este script, para un objetivo autorizado, verifica si la cuenta B puede leer objetos creados por la cuenta A.
import requests
BASE = "https://api.example.com/v2"
A = {"Authorization": "Bearer <token del tester-a>"}
B = {"Authorization": "Bearer <token del tester-b>"}
# objetos que posee la cuenta A (listados con el token de la propia A)
ids = [o["id"] for o in requests.get(f"{BASE}/invoices", headers=A, timeout=10).json()]
for oid in ids:
r = requests.get(f"{BASE}/invoices/{oid}", headers=B, timeout=10)
verdict = "VULNERABLE" if r.status_code == 200 else "ok"
print(f"{oid}: B -> {r.status_code} {verdict}")ffuf -u https://app.example.com/FUZZ -w common-paths.txt -rate 10 -mc 200,204,301,302,401,403 -o ffuf.jsonPrueba las APIs de forma deliberada
- La autorización a nivel de objeto () y a nivel de función son los hallazgos más comunes en APIs.
- : envía campos extra (role, isAdmin, price) que el cliente nunca envía.
- Exposición excesiva de datos: la API devuelve objetos completos y la interfaz oculta campos; lee la respuesta en bruto.
- Límites de tasa y de recursos en operaciones costosas.
- Deriva de versiones: versiones antiguas de la API y rutas no documentadas que carecen de los controles de las nuevas.
- Mantente dentro de las : prueba con datos de prueba, evita llamadas destructivas y mantén baja la tasa de solicitudes.
conexiones en el mapa
- Reconocimiento y superficie de ataquealimentaPruebas de seguridad de web y API
- Pruebas de seguridad de web y APIpuede llevar aRutas de ataque y escalada de privilegios
actualizado el 14/10/2026 · fuentes para profundizar · reportar un error
en otros dominios
- A01 Broken Access Controlowaspcómo encontrar lo que el otro enseña a corregir
- A05 Injectionowaspcómo probar lo que el otro enseña a corregir
Estudia antes
Desbloquea
pon a prueba lo que entendiste
Cargando preguntas…