JSPanda – Client-Side Prototype Pullution Vulnerability Scanner
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
- Selenium
Usage
Scan: python3.7 jspanda.py
- Add URLs to url.txt file, for instance : example.com
Basic 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
JavaScript Prototype Poisoning Vulnerabilities in the Wild
The Complete Guide to Prototype Pollution Vulnerabilities