如何使用JSPanda扫描客户端原型污染漏洞
关于JSPanda
JSPanda是一款功能强大的客户端原型污染漏洞扫描工具,该工具可以对从源代码中收集的所有单词进行污染操作,并将其显示在屏幕上。因此,它可能会产生假阳性结果。这些输出信息仅为研究人员提供额外的安全分析信息,其目的并非实现完全的自动化操作。
注意事项:当前版本的JSPanda还不具备检测高级原型污染漏洞的能力。
JSPanda运行机制
- 使用了多种针对原型污染漏洞的Payload;
- 可以收集目标项目中的所有链接,并对其进行扫描,然后添加Payload至JSPanda所获取到的URL中,并使用无头Chromedriver导航至每一条URL链接;
- 扫描目标JavaScript库源代码中潜在易受攻击的所有单词,JSPanda可以扫描目标项目中的脚本工具,并创建一个简单的JS PoC代码,以帮助广大研究人员对目标代码执行手动扫描;
工具要求
- 下载并安装最新版本的Google Chrome浏览器以及Chromedriver驱动程序;
- Selenium
工具下载
广大研究人员可以使用下列命令将该项目源码克隆至本地:
git clone https://github.com/RedSection/jspanda.git
工具运行
执行扫描
首先,我们需要将目标项目的URL地址添加进JSPanda的url.txt文件中,比如说“example.com”。添加完成后,我们就可以运行下列命令来执行扫描了:
python3.7 jspanda.py
基础源代码分析
首先,我们需要将一个JavaScript库的源代码添加至analyze.js中,然后使用analyze.py文件来生成PoC代码。
接下来,在Chrome浏览器的命令行终端窗口中执行我们刚才生成的PoC代码。它将会对从源代码中收集到的所有单词进行污染操作,并将结果显示在控制台窗口中。这个过程有可能会产生假阳性结果。这些输出信息仅为研究人员提供额外的安全分析信息,其目的并非实现完全的自动化操作。
运行命令如下:
python3.7 analyze.py
源代码分析截图
工具演示视频
视频地址:【点我观看】
项目地址
JSPanda:【GitHub传送门】
参考资料
- 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
- https://attacker-codeninja.github.io/2021-07-05-Learn-Prototype-Pollution-Part-2/
- https://github.com/dwisiswant0/ppfuzz
- https://github.com/raverrr/plution
- https://medium.com/intrinsic-blog/javascript-prototype-poisoning-vulnerabilities-in-the-wild-7bc15347c96
- https://www.whitesourcesoftware.com/resources/blog/prototype-pollution-vulnerabilities/
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
文章目录