Saltar al contenido principal
PENTESTING#pentesting#OWASP#web#burpsuite#SQLi#XSS

Metodología de Pentesting Web con OWASP Top 10: Guía Práctica 2025

Aprende a realizar pruebas de penetración web siguiendo la metodología OWASP Top 10. Herramientas, técnicas y casos prácticos para pentesters.

4 minCyberSecHub Team

Introducción al Pentesting Web

Las aplicaciones web son el vector de ataque más común en incidentes de ciberseguridad. Un pentest web es una evaluación de seguridad controlada que simula ataques reales para identificar vulnerabilidades antes de que lo hagan los atacantes.

Referencia estándar: El OWASP Top 10 es la lista de las vulnerabilidades web más críticas, actualizada en 2021. Es el punto de partida para cualquier pentest web.

Setup del Entorno de Pentesting

Herramientas esenciales

# Kali Linux incluye todo preinstalado, pero también:

# Burp Suite Community (gratuito)
# https://portswigger.net/burp/releases

# OWASP ZAP (alternativa open source)
sudo apt install zaproxy

# Nikto — escáner de vulnerabilidades web
sudo apt install nikto

# SQLMap — automatización de SQL injection
sudo apt install sqlmap

# Gobuster — enumeración de directorios
sudo apt install gobuster

Laboratorio de práctica legal

NUNCA practiques en sitios reales sin autorización. Usa:

# DVWA (Damn Vulnerable Web Application)
docker run --rm -it -p 80:80 vulnerables/web-dvwa

# Juice Shop (OWASP)
docker run --rm -p 3000:3000 bkimminich/juice-shop

# WebGoat
docker run -p 8080:8080 -p 9090:9090 webgoat/goat-and-wolf

OWASP Top 10 2021 — Análisis y Testing

A01: Broken Access Control

Descripción: El control de acceso falla, permitiendo a usuarios acceder a datos o funciones no autorizadas.

Testing:

# Probar acceso a rutas admin sin autenticación
curl -i https://target.com/admin/dashboard
curl -i https://target.com/api/users/1234  # ¿Puedo ver datos de otro usuario?

# IDOR (Insecure Direct Object Reference)
# Cambiar ID en URL: /profile?id=100 → /profile?id=101
# ¿Ves datos de otro usuario? Es una vulnerabilidad IDOR

Remediación: Implementar controles de acceso en el servidor, no solo en el cliente.

A02: Cryptographic Failures

Descripción: Datos sensibles transmitidos o almacenados sin cifrado adecuado.

Testing:

# Verificar SSL/TLS con sslyze
sslyze --regular target.com

# Testssl.sh
bash testssl.sh target.com

# Buscar datos sensibles en respuestas HTTP
# Buscar: contraseñas, PAN, datos médicos, claves API en respuestas

A03: Injection (SQL Injection)

Descripción: Datos no confiables enviados a un intérprete como parte de un comando o consulta.

Testing manual básico:

# Inputs de prueba para detectar SQLi
' OR '1'='1
' OR '1'='1' --
' UNION SELECT NULL --
1; DROP TABLE users --

# Si el comportamiento de la aplicación cambia = posible SQLi

Testing automatizado con SQLMap:

# SOLO en sistemas autorizados
sqlmap -u "https://target.com/product?id=1" --dbs
sqlmap -u "https://target.com/product?id=1" -D database_name --tables
sqlmap -u "https://target.com/product?id=1" --forms --batch --level=3

A07: Identification and Authentication Failures

Testing:

# Enumeración de usuarios
# Si "usuario no existe" vs "contraseña incorrecta" → enumeración posible

# Fuerza bruta con Hydra (solo en sistemas autorizados)
hydra -l admin -P /usr/share/wordlists/rockyou.txt target.com http-post-form \
  "/login:username=^USER^&password=^PASS^:Invalid credentials"

# Verificar si el token de sesión cambia tras el login
# Verificar expiración de sesión
# Verificar logout completo (invalidación en servidor)

XSS — Cross-Site Scripting

Testing básico:

// Payloads de prueba para XSS
<script>alert('XSS')</script>
<img src=x onerror=alert('XSS')>
"><script>alert(document.cookie)</script>
javascript:alert('XSS')

// En Burp Suite: usar Repeater para probar cada input
// Buscar en: parámetros GET/POST, cabeceras HTTP, campos de formulario

Uso de Burp Suite para Pentesting Web

Burp Suite es el estándar de la industria para pentesting web:

Flujo básico de trabajo:
1. Configurar proxy (127.0.0.1:8080) en el navegador
2. Activar "Intercept" en Burp Proxy
3. Navegar por la aplicación para mapear todos los endpoints
4. Usar "Target > Site Map" para ver la estructura
5. Enviar requests a "Repeater" para modificar manualmente
6. Usar "Intruder" para fuzzing automatizado
7. Revisar "Scanner" (Pro) para vulnerabilidades automáticas

Generación del Informe de Pentesting

Un informe profesional incluye:

# Informe de Pentest — [Nombre Aplicación]
Fecha: XX/XX/XXXX | Clasificación: CONFIDENCIAL

## Resumen Ejecutivo
- Scope evaluado
- Hallazgos críticos (número por severidad)
- Recomendación general

## Hallazgos

### CRÍTICO: SQL Injection en /api/search
- **CVSS Score**: 9.8 (Critical)
- **Descripción**: El parámetro `q` no está sanitizado...
- **Evidencia**: [Captura de pantalla / Request-Response]
- **Impacto**: Extracción completa de base de datos
- **Remediación**: Usar prepared statements / parameterized queries
- **Referencia**: CWE-89, OWASP A03:2021

## Plan de Remediación Priorizado
| Prioridad | Vulnerabilidad | Esfuerzo | Plazo |
|-----------|---------------|----------|-------|
| 1 | SQL Injection | Medio | 1 semana |

Recursos para Practicar

Recuerda: El pentesting sin autorización es un delito. Todas las técnicas aquí descritas deben aplicarse únicamente en entornos de prueba o con permiso escrito del propietario del sistema.

Libro Recomendado

The Web Application Hacker's Handbook

El manual definitivo para encontrar y explotar fallas de seguridad en aplicaciones web. Complemento perfecto para dominar Burp Suite y la metodología OWASP.

Aviso legal: Este contenido es estrictamente educativo. CyberFlows no apoya actividades ilegales. Úsalo solo en entornos autorizados.

REAL-TIME VISITOR LOGS