saltar al contenido
volver al mapa
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.

bola_check.py (solo objetivos autorizados)python
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}")
descubrimiento de contenido a una tasa moderada (solo objetivos autorizados)bash
ffuf -u https://app.example.com/FUZZ -w common-paths.txt -rate 10 -mc 200,204,301,302,401,403 -o ffuf.json

Prueba 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.
OWASP Top 10La lista de referencia más conocida de riesgos de seguridad en aplicaciones web (A01 control de acceso roto, A02 fallas criptográficas, A03 inyección...), revisada cada pocos años por la comunidad OWASP. Es un mapa educativo de categorías de riesgo, no un checklist de herramientas ni una certificación.ver en el glosario →Rate limitingLímite de solicitudes por entidad y ventana de tiempo. La elección de la clave (IP, cuenta, token, ASN) pesa tanto como el valor del límite.ver en el glosario →CORSintercambio de recursos entre orígenesUn mecanismo del navegador que permite a un servidor indicar qué otros orígenes pueden leer sus respuestas. Un origen comodín combinado con credenciales es una mala configuración.ver en el glosario →IDORreferencia directa insegura a objetos · BOLALa solicitud nombra un objeto (un id) y el servidor lo devuelve sin comprobar que quien llama puede verlo. Es la forma más común de control de acceso roto y, en las APIs, se llama broken object level authorization.ver en el glosario →Mass assignmentUna API vincula campos enviados por el cliente a un objeto, permitiendo que quien llama defina campos (como un rol) que no debería controlar.ver en el glosario →Reglas de compromisoRoEEl documento acordado que convierte el permiso en límites prácticos: alcance, ventana de tiempo, acciones prohibidas, tasa de solicitudes, contactos de emergencia y cómo se reportan los hallazgos.ver en el glosario →

conexiones en el mapa

actualizado el 14/10/2026 · fuentes para profundizar · reportar un error

en otros dominios

Estudia antes

Desbloquea

pon a prueba lo que entendiste

Cargando preguntas…