
Scanner di inquinamento del prototipo che utilizza Chrome headless

Plution è un modo conveniente per scansionare su larga scala le pagine vulnerabili alla prototype pollution lato client tramite un payload URL. Nella configurazione predefinita, utilizza un payload hardcoded in grado di rilevare 11 dei casi documentati qui: https://github.com/BlackFan/client-side-prototype-pollution/tree/master/pp
Non è un one-stop shop. La prototype pollution è una bestia complicata. Questo strumento non fa nulla che non potresti fare manualmente. Non è uno strumento super rifinito e senza bug. È funzionale ma mal codificato e da considerarsi al massimo alpha.
Plution aggiunge un payload agli URL forniti, naviga verso ogni URL con Chrome headless ed esegue JavaScript sulla pagina per verificare se un prototipo è stato inquinato con successo.
Scansione base, output solo a schermo:
cat URLs.txt | plution
Scansione con un payload fornito anziché hardcoded:
cat URLs.txt|plution -p '__proto__.zzzc=example'
Nota sui payload personalizzati: La variabile che si spera di iniettare deve essere chiamata o renderizzata come "zzzc". Questo perché 'window.zzzc' verrà eseguito su ogni pagina per verificare l'inquinamento.
Output:
Passare '-o' seguito da una posizione restituirà solo gli URL delle pagine che sono state inquinate con successo.
Concorrenza:
Passare l'opzione '-c' per specificare quanti job concorrenti vengono eseguiti (default è 5)
Come lo installo?
go get -u github.com/raverrr/plution
Perché specificamente limitarlo a controllare se window.zzzc è definito?
zzzc è un pattern breve che è improbabile sia già presente in un prototipo. Se vuoi più libertà per quanto riguarda il javascript, usa invece https://github.com/detectify/page-fetch
Hai una domanda più specifica?
Chiedimi su Twitter @divadbate.