Secciones
1. Introducción
Hoy vamos a sumergirnos en el apasionante mundo de los Proxies Web, esas herramientas esenciales que actúan como “hombre en medio” (MITM) para interceptar, modificar y volver a reproducir tráfico HTTP/HTTPS entre tu navegador (o aplicación móvil) y el servidor de destino. Veremos cómo instalar y configurar dos de las herramientas más populares —Burp Suite y OWASP ZAP—, cómo capturar y manipular solicitudes y respuestas, automatizar cambios, repetir peticiones, trabajar con codificadores/decodificadores, usar proxies en herramientas de CLI, y por último haremos un repaso de los fuzzers web integrados en cada una.
2. ¿Por qué usar un Proxy Web?
Las aplicaciones modernas dependen de servidores back-end para procesar datos. Un proxy web se interpone entre cliente y servidor, capturando todas las solicitudes y respuestas HTTP(S) en los puertos estándar (80/443). A diferencia de un sniffer genérico como Wireshark, un proxy te permite:
- Ver y modificar cada petición y respuesta.
- Reproducir solicitudes con cambios de forma instantánea.
- Automatizar ajustes (por ejemplo, cambiar User-Agent o desbloquear inputs HTML).
- Integrar fuzzer y escáneres para descubrir vulnerabilidades en web apps .
3. Instalación y primer arranque
3.1 Burp Suite
- Descarga desde PortSwigger (Windows/Linux/macOS).
- Ejecuta el instalador o, si prefieres el JAR:
java -jar /ruta/a/burpsuite.jar
- Al iniciar, elige Temporary Project → Use Burp Defaults → Start Burp .
La versión Community es gratuita y ya muy completa; la Pro añade escáner activo, Intruder rápido, etc.
3.2 OWASP ZAP
- Descarga desde zaproxy.org.
- Instala o ejecuta el JAR:
java -jar zaproxy.jar
- Al arrancar, opta por un proyecto temporal (no necesitas persistencia) .
Tip: Ambos soportan temas oscuros en sus opciones de Display.
4. Configurar el navegador y los certificados
4.1 Navegador preconfigurado
- Burp: en la pestaña Proxy → Intercept, haz clic en Open Browser.
- ZAP: pulsa el icono de Firefox en la barra superior para lanzar el navegador integrado.
4.2 Firefox + FoxyProxy
- Instala la extensión FoxyProxy.
- Configura un proxy HTTP en
127.0.0.1:8080
(puerto por defecto en ambas herramientas). - Actívalo desde su icono para redirigir todo el tráfico.
4.3 Certificado CA
- Burp: visita
http://burp
, descarga CA Certificate. - ZAP: en Tools → Options → Dynamic SSL Certificate, haz clic en Save.
- En Firefox:
about:preferences#privacy
→ View Certificates → Authorities → Import y confía en identificar sitios.
5. Interceptar y modificar solicitudes
5.1 Capturar peticiones
Activa Intercept en Burp o haz CTRL+B en ZAP HUD. Al navegar, verás la petición detenida para inspección.
Ejemplo: Comando ping
httpCopiarEditarPOST /ping HTTP/1.1
Host: 46.101.23.188:30820
Content-Length: 4
...
ip=1
Normalmente el input ip
solo acepta números, pero podemos cambiarlo a ;ls;
directamente :
ip=;ls;
Al reenviar, obtendrás la salida del comando ls
. Esto demuestra cómo inyectar comandos al manipular parámetros en el proxy .
5.2 Interceptar respuestas
Podemos cambiar HTML antes de que llegue al navegador:
<!-- Original -->
<input type="number" id="ip" ... maxlength="3" ...>
<!-- Modificado -->
<input type="text" id="ip" ... maxlength="100" ... required>
Con esto habilitas cualquier valor y aumentas el maxlength
.
6. Modificaciones automáticas (“Match & Replace”)
6.1 En solicitudes
En Proxy → Options → Match and Replace de Burp añade:
- Type: Request header
- Match:
^User-Agent.*$
- Replace:
User-Agent: HackTheBox Agent 1.0
- Regex match: True .
ZAP ofrece función Replacer (CTRL+R
) con opciones equivalentes .
6.2 En respuestas
Para que el campo ip
persista como texto, crea otra regla en Burp:
- Type: Response body
- Match:
type="number"
- Replace:
type="text"
- Regex match: False
Añade también maxlength="3"
→ maxlength="100"
.
7. Repetir peticiones
En HTTP History (Burp) o History (ZAP HUD), selecciona una petición y:
- Burp:
Ctrl+R
→ Repeater → Send. - ZAP: botón derecho → Open/Resend with Request Editor → Send .
Edita el cuerpo o las cabeceras y vuelve a enviar al instante.
8. Codificación y decodificación
8.1 URL Encode/Decode
- Burp Repeater: selecciona texto → botón derecho → Convert Selection → URL → URL encode key characters o
Ctrl+U
. - ZAP: codifica automáticamente en segundo plano.
8.2 Otros formatos
Ambas herramientas soportan Base64, HTML, Unicode, ASCII Hex, etc.
Ejemplo Base64
eyJ1c2VybmFtZSI6Imd1ZXN0IiwgImlzX2FkbWluIjpmYWxzZX0=
Decodificado → {"username":"guest","is_admin":false}
. Cámbialo a {"username":"admin","is_admin":true}
y vuelve a codificar para escalar privilegios .
9. Proxies en herramientas de CLI
9.1 proxychains
Edita /etc/proxychains.conf
:
# socks4 127.0.0.1 9050
http 127.0.0.1 8080
quiet_mode
Luego:
proxychains curl http://SERVER_IP:PORT
Verás la cabecera ProxyChains-3.1 al inicio .
9.2 Nmap
nmap --proxies http://127.0.0.1:8080 SERVER_IP -p PORT -Pn -sC
Esto redirige el escaneo HTTP a través del proxy .
9.3 Metasploit
En msfconsole
:
use auxiliary/scanner/http/robots_txt
set PROXIES HTTP:127.0.0.1:8080
set RHOST SERVER_IP
set RPORT PORT
run
Ahora todas las peticiones del módulo pasarán por tu proxy .
10. Fuzzing Web
10.1 Burp Intruder
- Envía una petición a Intruder (
Ctrl+I
). - En Positions, marca el segmento a fuzzear con
§…§
. - En Payloads, elige Simple list o Runtime file, carga un wordlist (e.g.,
/opt/…/common.txt
). - Ajusta Grep – Match a
200 OK
para filtrar resultados exitosos. - Start attack y observa
/admin
u otros endpoints válidos.
10.2 ZAP Fuzzer
- Desde el historial, Attack → Fuzz.
- Selecciona la palabra a reemplazar (e.g.,
test
). - En Payloads, usa File Fuzzers (incluye wordlists FuzzDB via marketplace).
- Añade procesadores como URL Encode.
- Lanza con varios hilos y ordena por “Response code = 200” .
11. Escáner Web
11.1 Burp Scanner
Burp Suite Professional incluye un Scanner capaz de realizar:
- Crawling (rastreo) automático del sitio: explora todos los enlaces y parámetros.
- Passive Scan: analiza en tiempo real cada petición/respuesta interceptada en busca de vulnerabilidades sin enviar tráfico adicional.
- Active Scan: lanza ataques activos contra los endpoints descubiertos para identificar problemas como XSS, SQLi, desbordamientos, etc.
Primeros pasos con Burp Scanner
- Tras configurar tu proxy y navegar con el navegador integrado, ve a la pestaña Target → Site map.
- Selecciona el host o paths que quieras escanear.
- Haz clic derecho → Scan → Scan selected items.
- En el panel Scanner, observa cómo Burp va clasificando cada hallazgo por severidad (High, Medium, Low).
- Haz doble clic en un hallazgo para ver detalles, prueba de concepto y explicación.
El escáner genera un informe detallado que puedes exportar en HTML, XML o Markdown para compartir con tu equipo.
11.2 OWASP ZAP Scanner
OWASP ZAP ofrece dos componentes principales de escaneo:
- Passive Scanner: funciona igual que Burp, revisando tráfico ya capturado.
- Active Scanner: realiza ataques activos configurables.
Cómo usar ZAP Scanner
- En la vista Sites, selecciona el sitio que has explorado (puede ser tras un fuzzing o navegación manual).
- Ve a Attack → Active Scan.
- Define el contexto (qué paths incluir/excluir) y el nivel de agresividad.
- Pulsa Start Scan y monitoriza progresivamente los resultados en la pestaña Alerts.
- Cada alerta incluye: descripción, evidencia (respuesta HTTP), CVE/OWASP links y recomendaciones.
Además, ZAP te permite programar escaneos automáticos desde la línea de comandos con su API:
zap-cli quick-scan --self-contained \
--start-options '-config api.disablekey=true' \
http://objetivo.tld
Este comando inicia ZAP en modo “headless”, escanea el dominio y guarda los resultados en /$HOME/.zap/
.
12. Reflexiones finales
Tanto Burp Suite como OWASP ZAP son pilares en el testing de seguridad web. Con ellos podrás:
- Inspeccionar y manipular tráfico.
- Automatizar cambios repetitivos.
- Integrar fuzzers y scanners.
- Probar herramientas de CLI a través del proxy.
Practica estos pasos en entornos controlados (Hack The Box, portales HTB Academy) hasta dominar cada técnica