探索未知,Wadi:面向Windows 10的Microsoft Edge浏览器Python模糊测试工具
项目地址:https://gitcode.com/sensepost/wadi
项目介绍
在数字安全的世界里,发现漏洞并确保软件的安全性至关重要。Wadi,由Saif El-Sherei和Etienne Stalmans开发,是一款基于Python的模糊测试(fuzzing)框架,专门针对Windows 10上的Microsoft Edge浏览器进行测试。这款强大的工具利用了winappdbg作为调试器以及Twisted作为Web服务器,为你提供了一种高效且灵活的测试环境。
项目技术分析
Wadi的设计理念是模块化,这意味着其各个组件可以独立工作。主要组成部分包括:
- winappdbg - 这是一个用于Windows应用程序的轻量级调试库,负责启动和附加到Edge相关进程,监控崩溃情况。
- Python Twisted - 基于Twisted的Web服务器,通过Google的PyV8引擎动态生成JavaScript测试用例,对每个请求响应。
此外,Wadi还具备一套过滤机制,能够识别并排除无效的测试用例,如0xFFFFFFFF
和空指针解引用。当发现崩溃时,它会计算崩溃哈希,并检查是否为新记录。如果找到新的崩溃点,系统将保存最近的十次测试用例及其崩溃日志,包括崩溃时的指令指针附近的反汇编代码和寄存器值。
应用场景
Wadi适用于多种场景,特别是对于那些希望确保其网站或Web应用在Edge浏览器上运行无误的开发者和安全工程师。你还可以将其与NodeFuzz集成,轻松扩展测试能力。只需将wadi-nodefuzz-module.js
和randoms.js
添加到NodeFuzz模块目录,并调用它们即可开始测试。
node nodefuzz.js -m ./Modules/wadi-nodefuzz-module.js -c [CONFIG]
项目特点
- 模块化设计 - 可以独立使用各个组件,便于定制和扩展。
- 高效监控 - 自动重启目标程序,避免因崩溃而中断测试。
- 智能过滤 - 避免无效的测试用例,提高测试效率。
- 详细报告 - 记录崩溃信息,帮助快速定位问题。
- 易于集成 - 与NodeFuzz兼容,增强现有测试流程。
使用准备与启动
首先,确保安装以下依赖:
- Python winappdbg
- Distorm disassembler
- Google Pyv8 Engine for Windows
- Twisted
然后,设置默认的HTTP处理程序为Microsoft Edge,并以管理员权限运行命令行:
wadi.py [Grammar File] [PORT]
其中 [Grammar File]
是你的JavaScript语法规则文件,[PORT]
是Web服务器监听的端口。
Wadi的目标是支持更多平台和浏览器,未来还有许多潜在的增强功能,如多窗口浏览器支持、Linux和macOS支持等。
开源许可
Wadi遵循Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International许可证,更多信息请访问官方网站。如果你有额外的需求,请联系[sensepost.com](http://sensepost.com/contact us/)获取许可。
拥抱创新,探索Wadi,开启你的Edge浏览器安全性之旅!