
Un tool veloce per scansionare la vulnerabilità di prototype pollution lato client scritto in Rust. 🦀
Fuzzer per Prototype Pollution
Un veloce strumento per scansionare la vulnerabilità di prototype pollution lato client scritto in Rust. 🦀
Semplicemente, scarica un binario precompilato dalla pagina delle release ed eseguilo!
| NOTA: Rust deve essere installato! |
Usando cargo:
▶ cargo install ppfuzz
Compilazione manuale del eseguibile dal codice sorgente:
▶ git clone https://github.com/dwisiswant0/ppfuzz
▶ cd ppfuzz && cargo build --release
# il binario si trova in target/release/ppfuzz
ppfuzz utilizza chromiumoxide, che richiede che il browser Chrome o Chromium sia installato.
Se la variabile d'ambiente CHROME è impostata, verrà utilizzata come eseguibile predefinito. Altrimenti, i nomi dei file google-chrome-stable, chromium, chromium-browser, chrome e chrome-browser vengono cercati nei percorsi standard. Se ciò fallisce, viene consultato /Applications/Google Chrome.app/... (su MacOS) o il registro (su Windows).

Come puoi vedere nella demo sopra (clicca per visualizzare in alta qualità), ppfuzz tenta di verificare le vulnerabilità di prototype pollution aggiungendo queries di oggetti e puntatori; se è effettivamente vulnerabile: rileva gli script gadget utilizzati e quindi mostra informazioni aggiuntive sul payload che potrebbero potenzialmente aumentare il suo impatto a XSS, bypass o injection di cookie.
È piuttosto semplice usare ppfuzz!
▶ ppfuzz -l FILE [OPZIONI]
Usa -l/--list per fornire una lista di input:
▶ ppfuzz -l FILE
Puoi anche fornire la lista usando la redirezione I/O:
▶ ppfuzz < FILE
— o concatenarlo dall'output di un altro comando:
▶ cat FILE | ppfuzz
Mostra solo target vulnerabili/sopprime gli errori:
▶ ppfuzz -l FILE 2>/dev/null
Ecco tutte le opzioni supportate:
▶ ppfuzz -h
| Flag | Descrizione | Valore predefinito |
|---|---|---|
| -l, --list | Lista di URL target | |
| -c, --concurrency | Imposta il livello di concorrenza | 5 |
| -t, --timeout | Tempo massimo consentito per la connessione (s) | 30 |
| -h, --help | Mostra informazioni di aiuto | |
| -V, --version | Mostra informazioni sulla versione |
Quando ho iniziato ppfuzz, avevo pochissima o nessuna conoscenza di Rust e credo che possano esserci molti svantaggi/vulnerabilità di sicurezza. Quindi tutti i contributi sono benvenuti, naturalmente — qualsiasi segnalazione di bug e suggerimenti sono apprezzati, alcuni ambienti non sono ancora stati testati.
Oltre ad essere il mio mezzo di apprendimento, questo strumento è stato creato perché ispirato dal suggerimento di @R0X4R su come automatizzare il controllo del prototype pollution usando page-fetch.
Poiché questo strumento include alcuni contributi, ringrazio pubblicamente i seguenti utenti per il loro aiuto e risorse:
Fourty2#4842 (Discord) - per un utile workaround.ppfuzz è distribuito sotto licenza MIT. Vedi LICENSE.