
Prototype-Pollution-Scanner mit Headless-Chrome

Plution ist eine bequeme Möglichkeit, in großem Umfang nach Seiten zu scannen, die über eine URL-Nutzlast anfällig für clientseitige Prototype Pollution sind. In der Standardkonfiguration wird eine hartcodierte Nutzlast verwendet, die 11 der hier dokumentierten Fälle erkennt: https://github.com/BlackFan/client-side-prototype-pollution/tree/master/pp
Dies ist keine Komplettlösung. Prototype Pollution ist ein komplexes Biest. Dieses Tool tut nichts, was Sie nicht manuell tun könnten. Es ist kein ausgefeiltes, fehlerfreies Super-Tool. Es ist funktional, aber schlecht programmiert und höchstens als Alpha zu betrachten.
Plution hängt eine Nutzlast an die bereitgestellten URLs an, navigiert mit Headless Chrome zu jeder URL und führt JavaScript auf der Seite aus, um zu überprüfen, ob ein Prototyp erfolgreich verschmutzt wurde.
Basis-Scan, Ausgabe nur auf Bildschirm:
cat URLs.txt | plution
Scan mit einer bereitgestellten Nutzlast anstelle einer hartcodierten:
cat URLs.txt|plution -p '__proto__.zzzc=example'
Hinweis zu benutzerdefinierten Nutzlasten: Die Variable, die Sie injizieren möchten, muss "zzzc" heißen oder darauf verweisen. Dies liegt daran, dass auf jeder Seite 'window.zzzc' ausgeführt wird, um die Verschmutzung zu überprüfen.
Ausgabe:
Die Übergabe von '-o' gefolgt von einem Pfad gibt nur die URLs von Seiten aus, die erfolgreich verschmutzt wurden.
Parallelität:
Übergeben Sie die Option '-c', um die Anzahl der gleichzeitigen Aufgaben anzugeben (Standard ist 5)
Wie installiere ich es?
go get -u github.com/raverrr/plution
Warum speziell auf die Überprüfung beschränken, ob window.zzzc definiert ist?
zzzc ist ein kurzes Muster, das wahrscheinlich nicht bereits in einem Prototyp vorhanden ist. Wenn Sie mehr Freiheit in Bezug auf das JavaScript wünschen, verwenden Sie stattdessen https://github.com/detectify/page-fetch
Haben Sie eine spezifischere Frage?
Fragen Sie mich auf Twitter @divadbate.