
Pipeline de bug bounty consciente del alcance para CVE-2025-0133 (XSS reflejado en GlobalProtect de Palo Alto PAN-OS). Shodan → coincidencia de alcance H1/BC → validación segura de canary → borradores de informes.
XSS reflejado en el controlador getconfig.esp de la pasarela y el portal GlobalProtect de Palo Alto PAN-OS. El parámetro de consulta user se refleja sin codificar en la página de Captive Portal; un atacante que engaña a un usuario autenticado de GlobalProtect para que acceda a un enlace manipulado puede ejecutar JavaScript en el contexto de confianza del portal VPN corporativo, lo que hace que las campañas de phishing sean mucho más efectivas.
Divulgado en mayo de 2025. Parcheado en PAN-SA-2025-0005. Descubierto por XBOW, el agente autónomo de caza de vulnerabilidades de Anthropic. Este kit de herramientas es una adaptación del pipeline de validación construido originalmente para CVE-2020-3580 — la misma arquitectura, un endpoint diferente, un parámetro diferente, cinco años de CVEs de por medio.
Este repositorio contiene:
xss.html — el PoC verificable manualmente; edita TARGET_HOST y ábrelo en un navegador para ver cómo se ejecuta el prompt.src/ — un pipeline de descubrimiento y validación con conocimiento del alcance.docs/ — metodología y ética.┌──────────┐ ┌──────────────┐ ┌────────────────┐ ┌──────────────┐
│ Shodan │ → │ scope match │ → │ canary check │ → │ MD report │
│ (3 dorks)│ │ (H1, BC, +) │ │ (no JS exec) │ │ drafts │
└──────────┘ └──────────────┘ └────────────────┘ └──────────────┘
Cada etapa escribe un artefacto JSON inspeccionable y se ejecuta de forma independiente.
El validador no ejecuta prompt(). Hace un GET a /ssl-vpn/getconfig.esp con una cadena canario única en el parámetro user y evalúa el cuerpo de la respuesta. Los resultados confirmados generan un borrador en Markdown con el xss.html original como referencia, para que el revisor del programa lo verifique en su propio navegador.
git clone https://github.com/cruxN3T/CVE-2025-0133
cd CVE-2025-0133
python3 -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
cp creds.env.example creds.env
$EDITOR creds.env # add your Shodan key, optionally H1/BC tokens
creds.env está en el .gitignore. El .gitignore bloquea cualquier archivo que coincida con *.env (excepto *.env.example), además de data/ y reports/, para mantener las listas de objetivos y los extractos de validación fuera del repositorio público.
Ejecución de principio a fin:
python -m src.pipeline run
O por etapas:
python -m src.pipeline discover # Shodan → data/shodan_hits.json
python -m src.pipeline scope # match → data/in_scope.json
python -m src.pipeline validate # canary → data/validation.json
python -m src.pipeline report # → reports/<host>__CVE-2025-0133.md
La etapa scope funciona sin ninguna clave de API: toma los datos de arkadiyt/bounty-targets-data. Añadir H1_USERNAME + H1_API_TOKEN a creds.env y ejecutar H1_LIVE=true python -m src.pipeline scope complementa eso con datos actualizados de la API de HackerOne Hacker (más lento; solo es útil si sospechas que el resumen de un programa ha cambiado hoy).
Todo se define en creds.env. Consulta creds.env.example para ver la lista completa. Los dos ajustes que merece la pena conocer:
SCOPE_PLATFORMS — separado por comas. Por defecto hackerone,bugcrowd. Añade intigriti y yeswehack si quieres una cobertura más amplia.TARGET_RPM — peticiones por minuto por host. Por defecto 10. No lo subas sin una razón.docs/ETHICS.md — qué autoriza y qué no el emparejamiento de alcance, y lo que el validador deliberadamente no hace.docs/METHODOLOGY.md — cómo funciona la evaluación de la reflexión y por qué existe cada etapa.No es una herramienta de explotación masiva. No es un sustituto de leer el resumen del programa en la plataforma antes de enviar tu informe. El emparejador de alcance es un punto de partida; el texto de la política es el contrato.
MIT. Consulta LICENSE.