X-PPM
ppmap
Escáner en Go que detecta prototype pollution del lado cliente y convierte gadgets conocidos en un payload de XSS funcional.
Sitio oficialVolver al catálogo
RESUMEN
ppmap (github.com/kleiton0x00/ppmap), escrito en Go, automatiza el proceso de dos pasos detrás de la mayoría de hallazgos de prototype pollution del lado cliente: primero corre un escaneo heurístico — vía una instancia de Chromium headless, así que necesita Chromium instalado — para revisar si los parámetros de una URL pueden contaminar Object.prototype, y luego huella un conjunto de gadgets conocidos, rutas de código de la aplicación que leen de forma peligrosa una propiedad controlable por el atacante desde el prototipo contaminado, para ver cuáles están realmente presentes.
Solo explota los gadgets que ya conoce en vez de hacer análisis de código general para descubrir otros personalizados, así que un escaneo limpio contra la lista de gadgets propia de ppmap no descarta que la prototype pollution sea explotable mediante lógica específica de la app que un revisor humano igual tendría que rastrear leyendo el JavaScript del cliente.
CASOS DE USO
Casos de uso en un engagement
- 01
Escanear parámetros de URL de una SPA en busca de prototype pollution del lado cliente antes de buscar gadgets a mano.
- 02
Huellar gadgets conocidos (jQuery, frameworks comunes) para obtener un payload XSS funcional sin escribir uno a mano.
- 03
Revisar en masa una lista de URLs en alcance en busca del patrón de vulnerabilidad como paso de triage temprano.
- 04
Demostrar impacto de un hallazgo de prototype pollution que de otro modo quedaría como una rareza DOM teórica en el informe.
PRIMEROS PASOS
Cuando una SPA merece revisarse por prototype pollution del lado cliente, para pasar de un hallazgo heurístico a un payload XSS funcional.
- Instala Chromium (o corre el script de setup incluido), ya que ppmap maneja un navegador headless real.
- Instala ppmap con go install, o clonando y compilando el repo.
- Pásale por pipe una única URL en alcance, o un archivo de URLs.
- Revisa las URLs marcadas y el gadget/payload que reporta para cada una.
- Confirma a mano que el payload XSS generado realmente se dispara en un navegador real antes de reportarlo.
cat urls.txt | ppmapANTES DE USARLA
Qué revisar antes de lanzarla
Solo cubre los gadgets ya conocidos por la herramienta — un resultado limpio no descarta prototype pollution explotable mediante código específico de la app.
Ejecuta un navegador headless real contra cada URL probada, así que trátalo como tráfico de escaneo activo y confirma volumen/ritmo contra el alcance, no como reconocimiento pasivo.
Un payload XSS generado es código de explotación en vivo — manéjalo y guárdalo según las reglas de evidencia del engagement en vez de dejarlo en el historial de shell o en archivos sueltos.