JSPanda

JSpanda 是一个客户端原型污染漏洞扫描器。它有两个关键特性:扫描所提供的URL的漏洞,以及分析JavaScript库的源代码。然而,JSpanda 无法检测高级的原型污染漏洞。
JSPanda 如何工作?
- 使用多种 payload 来检测原型污染漏洞。
- 收集目标中的所有链接进行扫描,并将 payload 添加到 JSpanda 获取的 URL 中,使用无头 Chromedriver 导航到每个 URL。
- 扫描潜在易受攻击的 JavaScript 库源代码中的所有单词,并通过查找脚本 gadget 创建一个简单的 JS PoC,帮助您手动分析代码。
要求
- 下载最新版本的 Google Chrome 和 Chromedriver
- Selenium
用法
扫描:python3.7 jspanda.py
- 将 URL 添加到 url.txt 文件中,例如:example.com
基本源代码分析:python3.7 analyze.py
- 将 JavaScript 库的源代码添加到 analyze.js 中
- 使用 analyze.py 生成 PoC 代码
- 在 Chrome 控制台上执行 PoC 代码。它会污染从源代码中收集的所有单词并显示在屏幕上。因此可能会产生误报结果。这些输出为研究人员提供额外信息,不要完全自动化。
演示

源代码分析 - 截图

参考资料:
https://twitter.com/har1sec/status/1314469278322655233
https://github.com/BlackFan/client-side-prototype-pollution
https://github.com/ThePacketBender/notes/blob/01c0b834f6e3ee4d934b087b2d92c9e484dc2a50/web/prototype_pollution.txt
https://habr.com/ru/company/huawei/blog/547178/
https://infosecwriteups.com/javascript-prototype-pollution-practice-of-finding-and-exploitation-f97284333b2
https://github.com/securitum/research/tree/master/r2020_prototype-pollution
系列学习原型污染 - 第2部分
dwisiswant0/ppfuzz
GitHub - raverrr/plution: 使用无头 Chrome 的原型污染扫描器
现实中的 JavaScript 原型污染漏洞
原型污染漏洞完全指南