JSpanda is client-side prototype pollution vulnerability scanner. It has two key features, scanning vulnerability the supplied URLs and analyzing the JavaScript libraries' source code.
However, JSpanda cannot detect advanced prototype pollution vulnerabilities.
How JSPanda works?
Uses multiple payloads for prototype pollution vulnerability. Gathers all the links in the targets for scanning and add payloads to JSpanda-obtained URLs, navigates to each URL with headless Chromedriver. Scans all words in the source code of potentially vulnerable JavaScript library and it creates a simple JS PoC by finding the script gadget, helping you analyze the code manually.Requirements
Download latest version of Google Chrome and Chromedriver SeleniumUsage
Scan: python3.7 jspanda.py
Add URLs to url.txt file, for instance : example.comBasic Source Code Analysis : python3.7 analyze.py
Add a JavaScript library's source code to analyze.js Generate PoC code using analyze.py Execute PoC code on Chrome's console. It pollutes all the words collected from the source code and show it on the screen. So it may generate false positive results. These outputs provide additional information to researchers, do not automate everything.Demonstration
Source code analysis - Screenshot
Supporting Materials :
https://twitter.com/har1sec/status/1314469278322655233
https://github.com/BlackFan/client-side-prototype-pollution
https://habr.com/ru/company/huawei/blog/547178/
https://github.com/securitum/research/tree/master/r2020_prototype-pollution
Learn Prototype Pollution in Series - Part 2
GitHub - raverrr/plution: Prototype pollution scanner using headless chrome