
Una herramienta rápida para escanear vulnerabilidades de contaminación de prototipos del lado del cliente escrita en Rust. 🦀
Fuzzer de Contaminación de Prototipos
Una herramienta rápida para escanear vulnerabilidades de contaminación de prototipos del lado del cliente escrita en Rust. 🦀
Simplemente, descarga un binario precompilado desde la página de lanzamientos y ¡ejecútalo!
| NOTA: ¡Rust debe estar instalado! |
Usando cargo:
▶ cargo install ppfuzz
Compilación manual del ejecutable desde el código fuente:
▶ git clone https://github.com/dwisiswant0/ppfuzz
▶ cd ppfuzz && cargo build --release
# el binario se encuentra en target/release/ppfuzz
ppfuzz utiliza chromiumoxide, que requiere que Chrome o Chromium estén instalados.
Si la variable de entorno CHROME está configurada, se usará como ejecutable predeterminado. De lo contrario, se buscan los nombres de archivo google-chrome-stable, chromium, chromium-browser, chrome y chrome-browser en las ubicaciones estándar. Si eso falla, se consulta /Applications/Google Chrome.app/... (en MacOS) o el registro (en Windows).

Como se puede ver en la demostración anterior (haz clic para ver en alta calidad), ppfuzz intenta verificar vulnerabilidades de contaminación de prototipos añadiendo consultas de objetos y punteros; si efectivamente es vulnerable, huella los gadgets de script utilizados y luego muestra información adicional de payload que podría potencialmente escalar su impacto a XSS, bypass o inyección de cookies.
¡Es bastante simple usar ppfuzz!
▶ ppfuzz -l ARCHIVO [OPCIONES]
Usa -l/--list para proporcionar una lista de entrada:
▶ ppfuzz -l ARCHIVO
También puedes proporcionar la lista usando redirección de E/S:
▶ ppfuzz < ARCHIVO
— o encadenarlo desde la salida de otro comando:
▶ cat ARCHIVO | ppfuzz
Mostrar solo objetivos vulnerables/suprimir errores:
▶ ppfuzz -l ARCHIVO 2>/dev/null
Aquí están todas las opciones que soporta:
▶ ppfuzz -h
| Indicador | Descripción | Valor predeterminado |
|---|---|---|
| -l, --list | Lista de URLs objetivo | |
| -c, --concurrency | Establecer el nivel de concurrencia | 5 |
| -t, --timeout | Tiempo máximo permitido para conexión (s) | 30 |
| -h, --help | Muestra la información de ayuda | |
| -V, --version | Muestra la información de versión |
Cuando empecé ppfuzz, tenía muy poco o ningún conocimiento de Rust y creo que puede haber muchos inconvenientes/vulnerabilidades de seguridad. Por lo tanto, todas las contribuciones son bienvenidas, por supuesto — cualquier reporte de errores y sugerencias son apreciados, algunos entornos aún no han sido probados.
Además de ser mi medio de aprendizaje, esta herramienta fue creada porque fue inspirada por el consejo de @R0X4R sobre cómo automatizar la verificación de contaminación de prototipos usando page-fetch.
Flujo de trabajo de compilación cruzada de GitHub inspirado por crodjer's sysit.
Dado que esta herramienta incluye algunas contribuciones, agradeceré públicamente a los siguientes usuarios por su ayuda y recursos:
Fourty2#4842 (Discord) - por una útil solución alternativa.ppfuzz se distribuye bajo MIT. Ver LICENSE.