原型污染模糊测试工具
一个用Rust编写的快速扫描客户端原型污染漏洞的工具。🦀
只需从发布页面下载预编译的二进制文件并运行即可!
| 注意:需要安装 Rust! |
使用 cargo:
▶ cargo install ppfuzz
从源代码手动构建可执行文件:
▶ git clone https://github.com/dwisiswant0/ppfuzz
▶ cd ppfuzz && cargo build --release
# 二进制文件位于 target/release/ppfuzz
ppfuzz 使用了 chromiumoxide,需要安装 Chrome 或 Chromium 浏览器。
如果设置了 CHROME 环境变量,则会将其作为默认可执行文件。否则,会在标准位置查找 google-chrome-stable、chromium、chromium-browser、chrome 和 chrome-browser 这些文件名。如果失败,则会检查 /Applications/Google Chrome.app/...(macOS)或注册表(Windows)。

如上方的演示所示(点击可查看高质量版本),ppfuzz 尝试通过添加对象和指针查询来检查原型污染漏洞;如果确实存在漏洞,它会识别所使用的脚本小工具,然后显示额外的有效载荷信息,这些信息可能用于将影响升级为 XSS、绕过或 cookie 注入。
使用 ppfuzz 非常简单!
▶ ppfuzz -l 文件 [选项]
使用 -l/--list 提供输入列表:
▶ ppfuzz -l 文件
你也可以通过 I/O 重定向提供列表:
▶ ppfuzz < 文件
— 或通过管道从另一个命令输出:
▶ cat 文件 | ppfuzz
仅显示存在漏洞的目标/抑制错误:
▶ ppfuzz -l 文件 2>/dev/null
以下是所有支持的选项:
▶ ppfuzz -h
当我开始编写 ppfuzz 时,我对 Rust 了解甚少,我相信可能存在许多缺陷/安全漏洞。因此,所有贡献都受欢迎——当然,任何错误报告和建议都将被采纳,有些环境尚未经过测试。
除了作为我的学习媒介外,创建此工具是受 @R0X4R 关于如何使用 page-fetch 自动化原型污染检查的提示启发。
跨编译 GitHub 工作流灵感来自 crodjer 的 sysit。
由于此工具包含一些贡献,我将公开感谢以下用户的帮助和资源:
Fourty2#4842(Discord)- 感谢有用的变通方法。ppfuzz 采用 MIT 许可证发布。详见 LICENSE。
| 标志 | 描述 | 默认值 |
|---|
| -l, --list | 目标URL列表 | |
| -c, --concurrency | 设置并发级别 | 5 |
| -t, --timeout | 允许的最大连接时间(秒) | 30 |
| -h, --help | 打印帮助信息 | |
| -V, --version | 打印版本信息 |