GhostAcademy
GhostAcademy
Burp Suite — Guía Completa desde Cero
Guía Completa
Burp Suite
La Herramienta de Seguridad Web de Referencia

Burp Suite es el proxy de interceptación web más usado en la industria de seguridad. Desarrollado por PortSwigger, permite interceptar, inspeccionar y modificar el tráfico HTTP/S entre el navegador y el servidor en tiempo real. Es el estándar en auditorías de aplicaciones web, Bug Bounty y certificaciones como OSCP y BSCP.

✅ Uso legal y éticoBurp Suite se usa exclusivamente contra aplicaciones web que controlas (entornos de desarrollo, laboratorios propios, Juice Shop, WebGoat, DVWA) o en las que tienes autorización escrita explícita (Bug Bounty con scope definido, contratos de pentesting). Nunca contra aplicaciones de terceros sin autorización.

Herramientas incluidas en Burp Suite

🔴
Proxy
Intercepta y modifica peticiones HTTP/S en tiempo real entre el navegador y el servidor. El núcleo de todo el suite.
Community + Pro
🟡
Repeater
Reenvía peticiones interceptadas con modificaciones. Permite probar payloads de forma manual e iterativa.
Community + Pro
🟣
Intruder
Automatiza el envío de peticiones con listas de payloads. Fuerza bruta, fuzzing, enumeración de parámetros.
Community (limitado)
🟢
Scanner
Escaneo activo y pasivo de vulnerabilidades. Detecta automáticamente SQLi, XSS, SSRF, XXE y más de 100 tipos.
Solo Pro
🔵
Decoder
Codifica y decodifica datos en múltiples formatos: Base64, URL encoding, HTML entities, Hex, JWT...
Community + Pro
🟤
Comparer
Compara dos peticiones o respuestas para detectar diferencias. Útil para identificar comportamientos distintos.
Community + Pro
⚪
Sequencer
Analiza la aleatoriedad de tokens de sesión. Detecta tokens predecibles que pueden ser forgeados.
Community + Pro

Community vs Professional

CaracterísticaCommunity (Gratuita)Professional (~$449/año)
Proxy, Repeater, Decoder✓ Completo✓ Completo
IntruderLimitado — con throttlingSin límites
Scanner automáticoNo disponible✓ Completo
BApp StoreExtensiones gratuitasTodas las extensiones
Burp CollaboratorNo✓ (para SSRF, XXE OOB)
Guardar proyectosNo (en memoria)✓ Proyectos en disco
Para aprendizajeMás que suficientePara profesionales
Inicio — 01
⚙️ Instalación en Kali, Windows y macOS

Burp Suite Community es gratuita y está disponible para todos los sistemas operativos. En Kali Linux viene preinstalada.

BASH — Kali Linux (preinstalado)
# En Kali Linux ya viene instalado — lanzar directamente
burpsuite
# O desde el menú: Applications → Web Application Analysis → burpsuite

# Si no está instalado o quieres la última versión
sudo apt update && sudo apt install burpsuite -y

# Verificar versión
burpsuite --version
BASH — Linux (cualquier distro) — instalación manual
# Descargar desde portswigger.net/burp/communitydownload
# Descargar el instalador .sh para Linux
wget "https://portswigger.net/burp/releases/download?product=community&type=Linux" \
  -O burpsuite_community_linux.sh
chmod +x burpsuite_community_linux.sh
./burpsuite_community_linux.sh
# Seguir el asistente gráfico de instalación
Windows / macOS — Instalación
## WINDOWS
# 1. Ir a: portswigger.net/burp/communitydownload
# 2. Descargar el instalador .exe para Windows
# 3. Ejecutar el .exe como administrador y seguir el asistente
# 4. Burp Suite aparecerá en el menú Inicio

## macOS
# Opción 1 — Instalador .dmg desde la web de PortSwigger
# Opción 2 — Homebrew
brew install --cask burp-suite

## JAVA (si falla el lanzamiento)
# Burp requiere Java 17+. Si no arranca:
java -version   # verificar versión
sudo apt install openjdk-21-jre -y   # instalar en Debian/Ubuntu

Primer arranque — Crear un proyecto temporal

1
Seleccionar "Temporary project in memory"
En la pantalla de bienvenida, la Community Edition solo permite proyectos temporales (en memoria). Seleccionar esta opción y hacer clic en Next.
2
Usar la configuración por defecto
En la siguiente pantalla, dejar "Use Burp defaults" seleccionado → clic en Start Burp. Burp Suite se abrirá en la interfaz principal.
3
Familiarizarse con la interfaz
La barra de pestañas superior muestra todas las herramientas: Proxy, Repeater, Intruder, etc. El panel inferior muestra el registro de peticiones interceptadas (HTTP History). El menú de la izquierda de cada herramienta muestra su configuración.
Inicio — 02
📜 Certificado CA — Paso Imprescindible

Para interceptar tráfico HTTPS (que es prácticamente todo hoy en día), el navegador debe confiar en el certificado raíz de Burp Suite. Sin este paso, verás errores SSL en todas las páginas HTTPS. Es el paso que más confunde a los principiantes.

🔴 Por qué es necesarioBurp actúa como un "Man in the Middle" entre el navegador y el servidor: descifra el tráfico HTTPS para inspeccionarlo, y lo vuelve a cifrar antes de enviarlo al servidor. Para que el navegador acepte este proceso sin errores, debe confiar en la CA (Autoridad de Certificación) de Burp.

Configurar el proxy en el navegador

1
Configurar el proxy HTTP en el navegador
Burp escucha por defecto en 127.0.0.1:8080.

Firefox (recomendado para Burp): Menú → Preferencias → General → Configuración de red → Configuración manual del proxy:
Proxy HTTP: 127.0.0.1 Puerto: 8080
Marcar "Usar este proxy también para HTTPS"

Chrome / Chromium: Se recomienda usar el parámetro de línea de comandos:
BASH — Lanzar Chrome con proxy de Burp
# Chrome / Chromium con proxy de Burp
google-chrome --proxy-server="http://127.0.0.1:8080" --ignore-certificate-errors
chromium-browser --proxy-server="http://127.0.0.1:8080"

# Firefox desde terminal
firefox --proxy-server="127.0.0.1:8080"

# Alternativa: usar FoxyProxy (extensión del navegador)
# Permite cambiar el proxy con un clic sin tocar la configuración del sistema
2
Descargar el certificado CA de Burp
Con el proxy configurado y Burp abierto, navegar en el navegador a: http://burpsuite o http://burp. Aparecerá la página de Burp Suite. Hacer clic en "CA Certificate" para descargar el archivo cacert.der.
3
Instalar el certificado en Firefox
Firefox → Preferencias → Privacidad y Seguridad → Certificados → Ver certificados → Pestaña "Autoridades" → Importar → seleccionar cacert.der → marcar "Confiar en esta CA para identificar sitios web" → Aceptar.
4
Instalar en Chrome / Sistema
Linux: sudo cp cacert.der /usr/local/share/ca-certificates/burp.crt && sudo update-ca-certificates
Windows: Doble clic en cacert.der → Instalar certificado → Almacén "Entidades de certificación raíz de confianza"
macOS: Doble clic en cacert.der → Llavero → marcar "Confiar siempre"
5
Verificar que funciona
Navegar a https://google.com con el navegador configurado. En Burp, pestaña Proxy → HTTP History deberías ver las peticiones aparecer. Si ves el candado verde sin errores SSL — todo está correcto.
💡 FoxyProxy — el método más cómodoInstalar la extensión FoxyProxy en Firefox o Chrome. Permite crear un perfil "Burp" con 127.0.0.1:8080 y activarlo/desactivarlo con un clic. Cuando no estás usando Burp, desactívalo para navegar con normalidad sin tener que cambiar la configuración del sistema.
Inicio — 03
🧪 Montar el Laboratorio

Para practicar Burp Suite necesitas una aplicación web vulnerable. Las mejores opciones son gratuitas, seguras y están pensadas exactamente para esto.

AplicaciónInstalaciónDificultadIdeal para
OWASP Juice Shopdocker run -p 3000:3000 bkimminich/juice-shop⭐ a ⭐⭐⭐⭐⭐Top 10 OWASP completo, más de 100 retos
DVWAdocker run -p 80:80 vulnerables/web-dvwa⭐ a ⭐⭐⭐SQLi, XSS, File Upload, CSRF básico
WebGoatdocker run -p 8080:8080 webgoat/webgoat⭐⭐ a ⭐⭐⭐⭐Lecciones guiadas con teoría + práctica
PortSwigger Web AcademyOnline — labs.portswigger.net⭐ a ⭐⭐⭐⭐⭐El mejor recurso — creado por los autores de Burp
HackTheBox / TryHackMeOnline con VPN⭐⭐ a ⭐⭐⭐⭐⭐Máquinas reales con objetivos web
BASH — Levantar el laboratorio completo con Docker
# Juice Shop — el más completo
docker run --rm -p 3000:3000 bkimminich/juice-shop
# Acceder en: http://localhost:3000

# DVWA — clásico para SQLi y XSS básico
docker run --rm -p 80:80 vulnerables/web-dvwa
# Acceder en: http://localhost
# Login: admin / password
# Ir a Setup/Reset DB → luego DVWA Security → Low

# WebGoat — lecciones guiadas
docker run --rm -p 8081:8080 -p 9090:9090 webgoat/webgoat
# Acceder en: http://localhost:8081/WebGoat

# Con docker-compose para tener todo a la vez
cat > docker-compose.yml << 'EOF'
version: "3"
services:
  juiceshop:
    image: bkimminich/juice-shop
    ports: ["3000:3000"]
  dvwa:
    image: vulnerables/web-dvwa
    ports: ["8082:80"]
  webgoat:
    image: webgoat/webgoat
    ports: ["8083:8080"]
EOF
docker-compose up -d
⚠ Proxy para aplicaciones localesLas aplicaciones en localhost (127.0.0.1) pueden no pasar por el proxy de Burp en algunos navegadores. Si no ves las peticiones en Burp History, configura el proxy para no excluir el tráfico local, o usa el nombre localhost en lugar de 127.0.0.1, o accede por la IP local de la máquina (ej: 192.168.1.x).
Herramienta — Proxy
🔴 Proxy — Interceptar Peticiones HTTP

El Proxy es el corazón de Burp Suite. Actúa como intermediario entre el navegador y el servidor, permitiendo ver, pausar y modificar cada petición HTTP/S antes de que llegue al destino. Todo lo que hace el navegador pasa por aquí.

Anatomía de la interfaz del Proxy

Panel / PestañaQué muestraPara qué se usa
InterceptLa petición actual pausada, lista para modificarModificar peticiones antes de enviarlas al servidor
HTTP HistoryHistorial de todas las peticiones que han pasado por el proxyRevisar el tráfico capturado, seleccionar peticiones para Repeater
WebSockets HistoryMensajes WebSocket interceptadosAuditar aplicaciones que usan WebSockets (chats, dashboards en tiempo real)
Proxy SettingsConfiguración del proxy: puerto, filtros, SSLAjustar el comportamiento del proxy

Interceptar y modificar una petición

1
Activar la intercepción
En la pestaña Proxy → Intercept, asegurarse de que el botón muestra "Intercept is ON" (fondo naranja). Cuando está OFF, las peticiones pasan sin pausarse (solo se registran en History).
2
Navegar a la aplicación objetivo
Con el proxy activo, navegar a Juice Shop (http://localhost:3000) o cualquier otra aplicación del laboratorio. La petición queda suspendida en el panel Intercept de Burp.
3
Leer la petición interceptada
En el panel Intercept verás la petición HTTP completa: método (GET/POST), URL, cabeceras y cuerpo. Cada elemento es editable haciendo clic directamente sobre él.
POST /rest/user/login HTTP/2 localhost:3000
Host: localhost:3000
Content-Type: application/json
Cookie: token=eyJhbGciOiJSUzI1NiJ9...
Content-Length: 52

{"email":"test@test.com","password":"admin123"}
← puedes modificar cualquier valor antes de hacer Forward
4
Modificar y reenviar
Edita el valor que quieras directamente en el panel. Luego:
Forward — envía la petición modificada al servidor y pasa a la siguiente
Drop — descarta la petición (el servidor no la recibe)
Action → Send to Repeater — envía al Repeater para seguir trabajando con ella
Action → Send to Intruder — envía al Intruder para automatizar

HTTP History — Revisar todo el tráfico

Con Intercept OFF, las peticiones fluyen libremente pero se registran en HTTP History. Es el modo más cómodo para navegar la aplicación y explorar qué endpoints existen antes de profundizar en alguno.

🔴 Filtros de HTTP HistoryEl botón Filter en HTTP History permite filtrar por: código de respuesta, tipo de contenido (solo HTML, solo JSON, solo imágenes...), extensión de archivo, y texto en la URL o en la respuesta. Con una aplicación compleja puedes tener cientos de peticiones — filtrar por código 200 o por "api" en la URL ayuda a encontrar lo interesante.

Configurar el alcance (Scope)

El Scope define qué URLs debe procesar Burp. Sin scope configurado, Burp captura todo el tráfico del navegador incluyendo publicidad, telemetría y CDNs. Configurarlo correctamente evita ruido y protege la privacidad.

Burp Suite — Configurar Scope
# Cómo configurar el scope en Burp:
1. Target → Scope Settings → Include in scope
2. Add → Host: localhost  Port: 3000
3. En Proxy Settings → marcar "And URL is in target scope"
   → Burp solo capturará tráfico hacia localhost:3000

Alternativa rápida:
- En HTTP History, clic derecho en cualquier petición
  → "Add to scope"
  → Burp pregunta si quieres ignorar el tráfico fuera del scope

# Verificar el scope activo
Target → Site Map → muestra solo los hosts en el scope
Herramienta — Repeater
🟡 Repeater — Modificar y Repetir

Repeater es la herramienta más usada en el trabajo diario con Burp. Permite tomar una petición HTTP, modificarla manualmente y reenviarla tantas veces como quieras, viendo la respuesta al instante. Es la herramienta para explorar y confirmar vulnerabilidades manualmente.

Flujo de trabajo con Repeater

1
Enviar una petición al Repeater
Desde el Proxy (Intercept o HTTP History): clic derecho sobre la petición → "Send to Repeater". Automáticamente se abre la pestaña Repeater con la petición cargada. También con el atajo Ctrl+R.
2
Modificar la petición
En el panel izquierdo del Repeater, edita cualquier parte de la petición: parámetros, cabeceras, cuerpo JSON, cookies. El editor tiene resaltado de sintaxis para JSON y XML. Puedes abrir múltiples pestañas del Repeater para comparar diferentes variaciones.
3
Enviar y analizar la respuesta
Clic en Send (o Ctrl+Enter). En el panel derecho aparece la respuesta del servidor. Puedes ver la respuesta en modo Raw (texto plano), Pretty (formateado), Hex o en el Render (vista previa HTML).
4
Navegar el historial de peticiones
Las flechas ← → en la parte superior del Repeater navegan por el historial de envíos de esa pestaña. Puedes comparar la respuesta de la petición original con la de las variaciones que has probado.

Ejemplo práctico — Explorar un parámetro en Juice Shop

GET /api/Products/1 HTTP/2 200 OK
Petición original → respuesta: información del producto ID=1

Modificaciones a probar en Repeater:
/api/Products/2 ← otro producto
/api/Products/0 ← ¿existe el ID 0?
/api/Products/-1 ← ID negativo — ¿qué responde?
/api/Products/999 ← ID que no existe — ¿código de error?
/api/Products/1.0 ← tipo de dato diferente
🟡 Repeater para confirmar vulnerabilidadesRepeater es la herramienta de confirmación. Cuando un escáner o una exploración manual sugiere una vulnerabilidad, el Repeater permite confirmarla manualmente con precisión quirúrgica: probar un payload específico, ver exactamente qué responde el servidor, y ajustar hasta conseguir el comportamiento esperado. Es también donde se documente la evidencia para el informe.
Herramienta — Intruder
🟣 Intruder — Automatizar Peticiones

Intruder automatiza el envío de peticiones HTTP con variaciones sistemáticas. Permite hacer fuzzing de parámetros, fuerza bruta de credenciales, enumeración de recursos y pruebas de payloads sobre cualquier parte de una petición HTTP.

⚠ Community Edition — throttlingEn la versión Community, Intruder limita la velocidad de envío para desincentivar el uso abusivo. Para uso serio (pentesting profesional) es necesaria la versión Pro, o usar alternativas como ffuf, wfuzz o feroxbuster para fuzzing de alta velocidad desde la terminal.

Los 4 modos de ataque de Intruder

ModoCómo funcionaCuándo usarlo
SniperUn solo set de payloads. Los prueba uno a uno en cada posición marcada, de forma secuencialFuzzing de un parámetro a la vez. El más común.
Battering RamUn solo set de payloads. Inserta el mismo payload en todas las posiciones marcadas simultáneamenteCuando el mismo valor debe ir en múltiples parámetros (ej: usuario en header y en body)
PitchforkMúltiples sets de payloads. Itera en paralelo: payload 1 del set A con payload 1 del set B, etc.Fuerza bruta de credenciales con lista de usuarios + lista de contraseñas emparejadas
Cluster BombMúltiples sets. Prueba todas las combinaciones posibles entre todos los payloads de todos los setsFuerza bruta de credenciales cuando no sabes qué usuario corresponde a qué contraseña

Cómo usar Intruder — Paso a paso

1
Enviar al Intruder
En HTTP History o Intercept: clic derecho → "Send to Intruder" (o Ctrl+I). Se abre la pestaña Intruder con la petición cargada.
2
Marcar las posiciones de los payloads
En la pestaña Positions: Burp habrá marcado automáticamente algunos valores con §§ (los parámetros detectados). Clic en "Clear §" para limpiar y luego seleccionar manualmente el valor que quieres variar → clic en "Add §". El valor queda marcado entre §§.
3
Seleccionar la fuente de payloads
Pestaña Payloads. En "Payload type" elegir:
Simple list — lista de valores (pegar directamente o cargar un archivo .txt)
Numbers — rango numérico (ej: del 1 al 1000)
Brute forcer — combinaciones de caracteres
Runtime file — leer de un archivo en tiempo real
4
Iniciar el ataque y analizar resultados
Clic en "Start attack". Se abre una ventana con los resultados. Ordenar por Status o Length para identificar respuestas distintas — una respuesta con código 200 y longitud diferente cuando todo lo demás da 401 o 404 indica que ese payload funcionó.
Burp Intruder — Listas de payloads útiles
# Burp Suite incluye listas en: Help → Burp Suite Defaults → Payload Lists
# También disponibles en SecLists (la colección más completa)

git clone https://github.com/danielmiessler/SecLists.git

# Las más útiles para Intruder en tests de aplicaciones web:
SecLists/Discovery/Web-Content/common.txt          ← directorios comunes
SecLists/Discovery/Web-Content/raft-medium-files.txt ← archivos comunes
SecLists/Usernames/top-usernames-shortlist.txt     ← usuarios frecuentes
SecLists/Passwords/Common-Credentials/top-20-common-SSH-passwords.txt
SecLists/Fuzzing/SQLi/Generic-SQLi.txt             ← payloads SQL injection
SecLists/Fuzzing/XSS/XSS-Jhaddix.txt              ← payloads XSS
Herramienta — Scanner
🟢 Scanner — Escaneo Automático

El Scanner es la característica estrella de Burp Suite Pro. Realiza escaneo activo y pasivo de vulnerabilidades sobre el tráfico capturado o sobre un objetivo específico. En Community Edition no está disponible, pero hay alternativas con extensiones.

Tipos de escaneo en Burp Pro

TipoCómo funcionaQué detecta
Escaneo pasivoAnaliza el tráfico que ya pasa por el proxy sin enviar peticiones adicionalesCabeceras de seguridad ausentes, cookies sin flags, información sensible en respuestas, versiones de software expuestas
Escaneo activoEnvía peticiones adicionales con payloads de prueba para detectar vulnerabilidadesSQL injection, XSS, SSRF, XXE, Path Traversal, OS Command injection, SSTI, y más de 100 tipos de vulnerabilidades
Crawl + AuditPrimero rastrea la aplicación automáticamente, luego escanea cada endpoint encontradoCobertura completa de la aplicación — encuentra endpoints que no se habían visitado manualmente
💡 Para usuarios de Community Edition — alternativas al ScannerSin Scanner de Burp Pro, puedes usar: OWASP ZAP (gratuito, escáner activo completo), Nikto (nikto -h http://localhost:3000) para configuración errónea del servidor, y extensiones de Burp como Active Scan++ y Retire.js que añaden capacidades de escaneo en Community.

Usar el Scanner en Burp Pro

1
Escanear desde HTTP History
En HTTP History: clic derecho sobre una petición → "Do active scan". Burp escaneará ese endpoint específico con todos sus payloads de detección. Los resultados aparecen en la pestaña Dashboard.
2
Escaneo completo de un objetivo
Dashboard → "New scan" → introducir la URL base (ej: http://localhost:3000) → elegir entre "Crawl and audit" (completo) o "Audit selected items" (solo los que ya tienes en el proxy history) → configurar profundidad del crawl y tipos de checks → OK.
3
Revisar los hallazgos
Los resultados aparecen en Target → Site Map (marcados con iconos de colores según severidad) y en Dashboard → Issue activity. Cada hallazgo incluye: descripción, severidad, petición que lo confirmó, referencia de remediación y en algunos casos el payload exacto que funcionó.
Herramientas Auxiliares
🔵 Decoder, Comparer y Sequencer

Tres herramientas auxiliares que completan el arsenal de Burp Suite para análisis de datos, comparación de respuestas y análisis de tokens.

Decoder — Codificar y decodificar

Decoder permite transformar datos entre múltiples formatos de codificación. Cuando ves un valor codificado en una petición (Base64, URL encoding, HTML entities), lo pegas aquí y lo decodificas con un clic.

Burp Decoder — Formatos soportados
# Acceder: pestaña Decoder (o clic derecho → Send to Decoder)

## Codificaciones disponibles:
URL encoding      → %3C%73%63%72%69%70%74%3E  ↔  <script>
HTML entities     → &lt;script&gt;          ↔  <script>
Base64            → SGVsbG8gV29ybGQ=          ↔  Hello World
Hex               → 48 65 6c 6c 6f            ↔  Hello
ASCII hex         → 0x48656c6c6f              ↔  Hello
Gzip              → (datos comprimidos)       ↔  texto plano
JWT               → header.payload.signature  ↔  JSON legible

# Tip: puedes encadenar múltiples decodificaciones
# URL decode → Base64 decode → Gzip decompress, todo en el mismo panel

Comparer — Comparar peticiones y respuestas

Comparer muestra las diferencias entre dos peticiones o respuestas, resaltando byte a byte lo que cambió. Útil para identificar qué cambia en la respuesta cuando un parámetro varía — señal de comportamiento diferente que puede indicar una vulnerabilidad.

Burp Comparer — Cómo usarlo
# Enviar items a Comparer:
Desde HTTP History: clic derecho → "Send to Comparer" (Request o Response)
Desde Repeater: clic derecho en el panel → "Send to Comparer"
Directamente: pegar texto en los dos paneles de Comparer

# Ver diferencias:
Comparer → seleccionar los dos items → "Compare" → Words o Bytes
- Words: diferencias a nivel de palabra (mejor para HTML/JSON)
- Bytes: diferencias a nivel de byte (mejor para datos binarios)
Las diferencias se resaltan en amarillo/rojo

# Casos de uso prácticos:
- Respuesta con credenciales válidas vs inválidas → qué cambia?
- Respuesta con usuario admin vs usuario normal → se muestran más datos?
- Dos versiones del mismo token → son realmente aleatorios?

Sequencer — Analizar aleatoriedad de tokens

Sequencer analiza estadísticamente si los tokens de sesión, tokens CSRF o cualquier valor generado por el servidor son realmente aleatorios. Un token predecible puede ser forgeado por un atacante.

Burp Sequencer — Análisis de tokens
# Enviar una petición que genera tokens al Sequencer:
HTTP History → clic derecho en petición de login o generación de token
→ "Send to Sequencer"

# Configurar qué parte de la respuesta contiene el token:
Sequencer → Token Location → seleccionar el campo de la respuesta
(Cookie, Set-Cookie, o Custom location con expresión)

# Ejecutar el análisis:
→ "Start live capture" → Burp envía la petición repetidamente (500-1000 veces)
→ captura los tokens generados → analiza su entropía estadística

# Interpretar resultados:
Entropía efectiva > 100 bits → BIEN: token seguro
Entropía efectiva < 64 bits  → MAL: token potencialmente predecible
Patrones detectados → CRÍTICO: token con estructura predecible
BApp Store — Intro
🧩 ¿Qué es el BApp Store?

El BApp Store (Burp App Store) es el repositorio oficial de extensiones para Burp Suite. Contiene más de 300 extensiones desarrolladas por la comunidad y por PortSwigger que añaden funcionalidades específicas al suite. Muchas son gratuitas y de código abierto.

🔵 Extensiones = superpoderesLas extensiones convierten a Burp Suite en una plataforma personalizable. Puedes añadir soporte para nuevos protocolos, detección de vulnerabilidades específicas, integración con otras herramientas, nuevos tipos de escaneo y automatizaciones personalizadas. La versión Community puede usar todas las extensiones gratuitas.

¿Qué tipos de extensiones existen?

CategoríaQué hacenEjemplos
EscaneoAñaden nuevos checks de vulnerabilidades al escánerActive Scan++, Retire.js, Software Vulnerability Scanner
ReconocimientoExtraen información adicional del tráficoJS Miner, Asset Discover, Google Hack
AutenticaciónGestionan tokens, sesiones y autenticaciónAutorize, JWT Editor, AuthMatrix
PayloadsAñaden nuevos tipos de payloads para IntruderTurbo Intruder, Backslash Powered Scanner
UtilidadesMejoran la usabilidad y workflow generalLogger++, Hackvector, Param Miner
BApp Store — Instalación
📦 Instalar Extensiones

Instalar extensiones desde el BApp Store es inmediato — un clic. También se puede instalar manualmente desde archivos .jar o .py para extensiones no disponibles en la tienda oficial.

Instalar desde el BApp Store

1
Abrir el BApp Store
En Burp Suite: pestaña Extensions → pestaña BApp Store. Se carga el catálogo completo de extensiones. Las que tienen el sello naranja son de pago (solo Pro); las demás son gratuitas.
2
Buscar e instalar
Buscar por nombre en el campo de búsqueda o explorar por categoría. Hacer clic en la extensión → ver la descripción → clic en "Install". Burp descarga e instala automáticamente la extensión. No es necesario reiniciar.
3
Verificar la instalación
La extensión aparece en la pestaña Extensions → Installed con una marca verde si está activa. Muchas extensiones añaden una nueva pestaña en la barra principal de Burp o un ítem en el menú contextual (clic derecho en peticiones).

Instalar manualmente (archivos .jar / .py)

Burp Suite — Instalar extensión manual
# Para extensiones de GitHub o fuera del BApp Store

## Si la extensión está en Python (necesita Jython)
# 1. Descargar Jython standalone JAR desde jython.org
# 2. En Burp: Extensions → Extensions settings → Python environment
#    → seleccionar el .jar de Jython descargado

## Instalar extensión manual:
Extensions → Installed → Add
→ Extension type: Java / Python / Ruby
→ Extension file: seleccionar el .jar o .py descargado
→ Next → la extensión se carga

## Ejemplo: instalar Turbo Intruder manualmente si no está en la tienda
git clone https://github.com/PortSwigger/turbo-intruder.git
# Compilar o usar el .jar precompilado de Releases → instalar como arriba

## Ver errores de carga de extensiones:
Extensions → Installed → seleccionar extensión → pestaña "Errors"
Útil para diagnosticar por qué una extensión no carga correctamente
💡 Jython para extensiones PythonMuchas extensiones del BApp Store están escritas en Python. Para cargarlas necesitas Jython (una implementación de Python en Java). Descargar el archivo "standalone" desde jython.org y configurarlo en Extensions → Extensions settings → Python environment. Una vez hecho, todas las extensiones Python funcionan sin más configuración.
BApp Store — Top
⭐ Las Mejores Extensiones

Selección de las extensiones más útiles y usadas en pentesting web. Todas gratuitas salvo que se indique.

Extensiones imprescindibles

Autorización
Autorize
Automatiza el testing de control de acceso. Repite cada petición con los tokens de dos usuarios distintos y detecta si un usuario de bajo privilegio puede acceder a recursos del admin. Indispensable para detectar IDOR y privilege escalation.
✓ Gratuita — BApp Store
JWT
JWT Editor
Decodifica, edita y re-firma tokens JWT directamente desde Repeater e Intruder. Permite probar algoritmo none, RS256 a HS256 confusion, weak keys y key injection attacks.
✓ Gratuita — BApp Store
Escaneo
Active Scan++
Añade checks adicionales al escáner de Burp Pro: detección de SSRF, XXE, Header Injection, Template Injection y más. En Community, añade checks al menú contextual para testing manual.
✓ Gratuita — BApp Store
Parámetros
Param Miner
Descubre parámetros GET/POST ocultos que la aplicación procesa pero no muestra en los formularios. Muy útil para encontrar parámetros de depuración, features escondidas o cache poisoning. Clic derecho → Extensions → Param Miner → Guess params.
✓ Gratuita — BApp Store
Intruder potenciado
Turbo Intruder
Reemplaza al Intruder para ataques de alta velocidad. Usa un script Python personalizable para enviar peticiones a velocidades imposibles para el Intruder estándar. Ideal para race conditions y fuzzing masivo.
✓ Gratuita — BApp Store
Componentes
Retire.js
Detecta librerías JavaScript con vulnerabilidades conocidas (jQuery antiguo, Angular vulnerable, etc.) escaneando pasivamente las respuestas HTTP. Mapea versiones contra la base de datos de CVEs de retire.js.
✓ Gratuita — BApp Store
Logging
Logger++
Reemplaza el HTTP History con una vista más potente: filtros avanzados, exportación, coloreado por reglas personalizadas. Permite crear filtros complejos tipo "mostrar solo peticiones con parámetro 'id' que devuelvan 200".
✓ Gratuita — BApp Store
Encoding
Hackvector
Añade tags de codificación/decodificación que Burp procesa automáticamente en Intruder y Repeater. Ejemplo: <@base64>payload</@base64> se codifica en cada petición. Útil para bypasses de WAF.
✓ Gratuita — BApp Store
JavaScript
JS Miner
Extrae endpoints, parámetros, credenciales hardcodeadas y comentarios sensibles de archivos JavaScript. Muy útil en aplicaciones SPA (React, Angular, Vue) donde la mayor parte de la lógica está en el JS del cliente.
✓ Gratuita — BApp Store
Scanning
Backslash Powered Scanner
Detecta vulnerabilidades de inyección no estándar que los escáneres convencionales no encuentran: server-side template injection, expression language injection, XPath injection. Envía payloads con backslash para detectar comportamientos anómalos.
✓ Gratuita — BApp Store
Testing de roles
AuthMatrix
Define una matriz de roles y URLs y comprueba automáticamente qué combinaciones de rol/recurso son accesibles. Perfecto para aplicaciones con múltiples niveles de permisos (admin, manager, user, guest).
✓ Gratuita — BApp Store
Colaboración OOB
Collaborator Everywhere
Inyecta payloads de Burp Collaborator en todas las cabeceras de cada petición para detectar vulnerabilidades out-of-band (SSRF, XXE, blind injection). Requiere Burp Pro para el servidor Collaborator.
⚠ Requiere Burp Pro
BApp Store — Desarrollo
🐍 Escribir tu Propia Extensión

Burp Suite tiene una API de extensiones completa. Puedes escribir extensiones en Java, Python (con Jython) o Ruby (con JRuby). Una extensión Python básica puede estar lista en menos de 50 líneas de código.

🔵 Casos de uso para extensiones propiasAutomatizar modificaciones repetitivas en peticiones, añadir cabeceras de autenticación custom a todas las peticiones, extraer y mostrar datos específicos del tráfico, integrar Burp con una herramienta interna, o crear payloads personalizados para un objetivo concreto.
Python — Extensión Burp mínima (con Jython)
# extension_basica.py
# Extensión que añade una cabecera personalizada a todas las peticiones
# Instalar: Extensions → Add → Python → seleccionar este archivo

from burp import IBurpExtender, IHttpListener

class BurpExtender(IBurpExtender, IHttpListener):

    def registerExtenderCallbacks(self, callbacks):
        """Se ejecuta al cargar la extensión"""
        self._callbacks = callbacks
        self._helpers = callbacks.getHelpers()

        # Nombre que aparece en la lista de extensiones
        callbacks.setExtensionName("GhostAcademy - Cabecera Custom")

        # Registrar como listener HTTP — se llamará en cada petición/respuesta
        callbacks.registerHttpListener(self)

        print("[+] Extensión cargada correctamente")

    def processHttpMessage(self, toolFlag, messageIsRequest, messageInfo):
        """Se ejecuta en cada petición o respuesta"""

        # Solo procesar peticiones (no respuestas)
        if not messageIsRequest:
            return

        # Obtener la petición actual
        request = messageInfo.getRequest()
        analyzedRequest = self._helpers.analyzeRequest(request)

        # Obtener las cabeceras actuales
        headers = list(analyzedRequest.getHeaders())

        # Añadir nuestra cabecera personalizada
        headers.append("X-GhostAcademy-Test: auditoria-autorizada")

        # Obtener el cuerpo de la petición
        body = request[analyzedRequest.getBodyOffset():]

        # Reconstruir la petición con la nueva cabecera
        nueva_peticion = self._helpers.buildHttpMessage(headers, body)

        # Reemplazar la petición original
        messageInfo.setRequest(nueva_peticion)
[+] Extensión cargada correctamente
← desde ahora, todas las peticiones llevan la cabecera X-GhostAcademy-Test
Python — Extensión: extraer endpoints de respuestas
# Extensión que extrae URLs y rutas de las respuestas HTTP
from burp import IBurpExtender, IHttpListener
import re

class BurpExtender(IBurpExtender, IHttpListener):

    def registerExtenderCallbacks(self, callbacks):
        self._callbacks = callbacks
        self._helpers = callbacks.getHelpers()
        callbacks.setExtensionName("GhostAcademy - Extractor de Endpoints")
        callbacks.registerHttpListener(self)
        self.endpoints_encontrados = set()
        print("[+] Extractor de endpoints activo")

    def processHttpMessage(self, toolFlag, messageIsRequest, messageInfo):
        if messageIsRequest:
            return

        # Obtener el cuerpo de la respuesta como string
        response = messageInfo.getResponse()
        analyzedResponse = self._helpers.analyzeResponse(response)
        body_offset = analyzedResponse.getBodyOffset()
        body = response[body_offset:].tostring().decode('utf-8', errors='ignore')

        # Buscar URLs relativas y endpoints de API
        patron_api = r'["\'](?:\/api\/[a-zA-Z0-9_\/\-\.]+)["\']'
        patron_ruta = r'["\'](?:\/[a-zA-Z0-9_\/\-\.]+)["\']'

        for match in re.findall(patron_api, body):
            endpoint = match.strip('"\'')
            if endpoint not in self.endpoints_encontrados:
                self.endpoints_encontrados.add(endpoint)
                print(f"[ENDPOINT] {endpoint}")
Flujo de Trabajo — 01
🔍 Flujo: Reconocimiento Web

El reconocimiento es el primer paso en cualquier auditoría web. Con Burp Suite puedes mapear completamente la superficie de una aplicación antes de profundizar en vulnerabilidades específicas.

1
Configurar el scope y activar el proxy pasivo
Dejar Intercept OFF. Configurar el scope con el dominio objetivo. Navegar manualmente por toda la aplicación: páginas principales, login, registro, panel de usuario, funciones de búsqueda, subida de archivos. Burp registra todo en HTTP History y construye el Site Map automáticamente.
2
Revisar el Site Map
Target → Site Map: árbol completo de URLs, endpoints y parámetros detectados. Los nodos con contenido en gris son URLs descubiertas pero no visitadas (por ejemplo, enlaces en el HTML). Clic derecho → "Add to scope" en los dominios relevantes.
3
Usar Param Miner para descubrir parámetros ocultos
En HTTP History, clic derecho en peticiones interesantes (especialmente GETs) → Extensions → Param Miner → "Guess params". Param Miner prueba miles de nombres de parámetros y reporta los que generan una respuesta diferente.
4
Usar JS Miner para analizar los JavaScript
En HTTP History, filtrar por ".js" en la URL. Clic derecho en cada archivo JS relevante → JS Miner → analizar. La extensión extrae endpoints de API, comentarios con rutas y cualquier valor hardcodeado que no debería estar en el código cliente.
5
Documentar los hallazgos del reconocimiento
Con el reconocimiento completo, deberías tener: lista de endpoints, parámetros de cada endpoint, tipos de datos aceptados (JSON, form data, multipart), cabeceras de autenticación usadas, tecnologías detectadas (frameworks, librerías). Esta información guía las fases de testing posteriores.
Flujo de Trabajo — 02
🔐 Flujo: Testear Autenticación y Autorización

Los fallos de autenticación y control de acceso son las categorías A01 y A07 del OWASP Top 10 — las más frecuentes. Burp Suite con Autorize y JWT Editor las hace accesibles de testear incluso para principiantes.

1
Configurar Autorize con dos sesiones
Iniciar sesión con un usuario privilegiado (admin). En la extensión Autorize, pegar el token de sesión de un usuario de menor privilegio (o sin sesión). Autorize repetirá automáticamente cada petición con ese segundo token y mostrará si la respuesta es la misma (posible IDOR o privilege escalation).
2
Navegar como admin con Autorize activo
Con Autorize activo, navegar por los recursos de admin: panel de administración, gestión de usuarios, configuración. Autorize muestra en tiempo real: verde (acceso denegado correctamente), rojo (acceso concedido — posible vulnerabilidad), amarillo (respuesta diferente — investigar).
3
Testear JWT con JWT Editor
Si la aplicación usa JWT: interceptar una petición autenticada en Proxy → Intercept. En el panel inferior, la pestaña "JSON Web Token" (añadida por JWT Editor) muestra el token decodificado. Probar: cambiar el algoritmo a "none", modificar el payload (ej: role: "admin"), observar si el servidor acepta el token modificado.
4
Usar Intruder para tests de fuerza bruta controlados
Interceptar la petición de login → Send to Intruder → marcar el campo de contraseña → cargar una lista pequeña de contraseñas comunes → atacar. Observar en los resultados si alguna petición tiene una longitud de respuesta diferente o un código 302 (redirect = login exitoso).
Flujo de Trabajo — 03
📡 Flujo: Auditar APIs REST

Las APIs REST son el objetivo más común en pentesting web moderno. La mayoría de las aplicaciones SPA (React, Angular, Vue) se comunican exclusivamente por API. Burp Suite es la herramienta ideal para interceptar e inspeccionar ese tráfico JSON.

1
Filtrar solo tráfico de API en HTTP History
HTTP History → Filter → en "Show only in-scope items" asegurarse de tener el scope. En el campo de filtro rápido escribir "/api" para mostrar solo las peticiones a endpoints de API. También filtrar por Content-Type "application/json".
2
Explorar los endpoints con Repeater
Para cada endpoint de API interesante: Send to Repeater. Probar variaciones: cambiar el ID del recurso (IDOR), cambiar el método HTTP (GET → POST, PUT, DELETE), eliminar cabeceras de autenticación para ver si el endpoint es público, añadir parámetros extra para ver si se procesan (mass assignment).
3
Buscar mass assignment
En APIs REST, los endpoints que aceptan JSON a menudo procesan más campos de los que muestran en la documentación. En Repeater, añadir campos extra al body JSON como "role": "admin", "isAdmin": true, "verified": true y observar si el servidor los acepta y almacena.
4
Testear IDOR sistemáticamente con Intruder
Interceptar GET /api/users/123 → Send to Intruder → marcar el "123" como posición → payload type: Numbers (1 a 200) → atacar. En los resultados, cualquier petición que devuelva 200 con longitud diferente a las 404 indica un objeto accesible — verificar si el usuario debería poder acceder a esos objetos.
Referencia
⌨️ Atajos de Teclado

Dominar los atajos de teclado multiplica la velocidad de trabajo con Burp Suite. Los más importantes son los de navegación entre herramientas y los de envío entre paneles.

AtajoAcciónContexto
Ctrl + REnviar al RepeaterProxy Intercept / HTTP History
Ctrl + IEnviar al IntruderProxy Intercept / HTTP History
Ctrl + EnterEnviar peticiónRepeater
Ctrl + ZDeshacer ediciónCualquier editor de texto
Ctrl + FBuscar en el panel actualCualquier panel
Ctrl + GIr a (en el editor de texto)Editors
Ctrl + ASeleccionar todoCualquier editor
Ctrl + Shift + REnviar al Repeater (desde Intruder)Intruder results
Ctrl + Mayús + FBuscar en todos los panelesGlobal
Ctrl + +Nueva pestaña en RepeaterRepeater
FForward (reenviar petición interceptada)Proxy Intercept
DDrop (descartar petición)Proxy Intercept
Referencia
✅ Checklist y Recursos

Checklist de configuración inicial

  • Burp Suite Community instalado y arrancando correctamente
  • Proxy configurado en el navegador: 127.0.0.1:8080
  • Certificado CA de Burp instalado en el navegador
  • Verificado: peticiones HTTPS aparecen en HTTP History
  • FoxyProxy instalado para cambiar proxy con un clic
  • Laboratorio levantado: Juice Shop en localhost:3000
  • Scope configurado con el dominio del laboratorio

Checklist de extensiones esenciales

  • Jython configurado en Extensions settings (para extensiones Python)
  • Autorize instalado y configurado con dos sesiones
  • JWT Editor instalado (si la app usa JWT)
  • Param Miner instalado para descubrir parámetros ocultos
  • Logger++ instalado como reemplazo del HTTP History
  • Retire.js instalado para detección de JS vulnerable
  • Turbo Intruder instalado para fuzzing de alta velocidad

Recursos para seguir aprendiendo

RecursoURLDescripción
PortSwigger Web Academyportswigger.net/web-securityEl mejor recurso gratuito de seguridad web — creado por los autores de Burp
Burp Suite Documentationportswigger.net/burp/documentationDocumentación oficial de todas las herramientas
BApp Storeportswigger.net/bappstoreCatálogo completo de extensiones con descripciones
Burp Extension APIportswigger.net/burp/extender/apiJavadoc completo para desarrollar extensiones
Burp Suite Certification (BSCP)portswigger.net/web-security/certificationCertificación oficial de PortSwigger en seguridad web con Burp
GitHub PortSwiggergithub.com/PortSwiggerCódigo fuente de extensiones oficiales
OWASP Juice Shopowasp.org/www-project-juice-shopLa mejor aplicación de práctica para Burp Suite

Comandos rápidos de referencia

Burp Suite — Cheatsheet de uso diario
## PROXY
Intercept ON/OFF    → pestaña Proxy → Intercept → botón
Forward             → reenviar petición pausada
Drop                → descartar petición pausada
Action              → menú de envío a otras herramientas

## REPEATER
Ctrl+R              → enviar petición al Repeater
Ctrl+Enter          → enviar petición en Repeater
← →                 → navegar historial de envíos
Ctrl++              → nueva pestaña de Repeater

## INTRUDER
Ctrl+I              → enviar al Intruder
Positions           → marcar posiciones con §§
Payloads            → configurar lista de payloads
Start attack        → iniciar el ataque
Ordenar por Length  → detectar respuestas diferentes

## DECODER
Ctrl+B              → encode como Base64
Ctrl+Shift+B        → decode Base64
Ctrl+U              → URL encode
Ctrl+Shift+U        → URL decode

## FILTROS ÚTILES EN HTTP HISTORY
Filtrar por código: 200, 302, 401, 403, 500
Filtrar por extensión: php, aspx, json
Filtrar por texto en URL: /api, /admin, /upload
Mostrar solo in-scope: para reducir el ruido