EFuzz:基于程序环境的通用模糊测试工具

admin 2024年5月24日22:20:20评论2 views字数 1310阅读4分22秒阅读模式
EFuzz:基于程序环境的通用模糊测试工具
关于EFuzz
EFuzz是一款功能强大的模糊测试工具,该工具支持基于程序运行环境来执行模糊测试,广大安全研究人员可以使用该工具对几乎任何程序组件执行安全模糊测试。
EFuzz:基于程序环境的通用模糊测试工具
该工具在运行之后,会将所有的环境交互信息(包括用户输入数据),并将其存储到一个文件中,然后对目标应用程序执行模糊测试。在这个过程中,EFuzz会不断对原始用例进行变异,并尝试触发程序崩溃。
功能介绍
当前版本的EFuzz支持对任意组件执行模糊测试,其中包括但不限于:
1、网络服务器/客户端;
2、图形化用户接口(GUI)应用程序;
3、编辑器;
4、编译器;
5、数据库;
6、其他任何Linux用户模式软件;
7、...
工具运行机制
与其他模糊测试工具的不同之处在于,EFuzz会对目标与其环境的整个交互进行模糊测试,其中包括所有的文件(配置、缓存、资源、字体等)、套接字(会话管理器、命名服务等)、用户窗口交互、设备和数据流等。也就是说,EFuzz的模糊测试目标是整个环境本身,我们将其称之为基于程序环境的模糊测试。该工具执行架构如下图所示:
EFuzz:基于程序环境的通用模糊测试工具
工具下载
广大研究人员可以直接使用下列命令将该项目地址克隆至本地:
git clone https://github.com/GJDuck/RRFuzz.git
代码构建
项目克隆完成后,切换到项目目录中,使用工具build.sh脚本完成代码构建:
$ cd RRFuzz$ ./build.sh
注意,上述命令仅在Ubuntu系统中进行过测试。
工具使用命令
记录环境数据:
$ ./EFuzz record -- vim hello.txt
重放:
$ ./EFuzz replay
模糊测试:
$ ./EFuzz fuzz
复现崩溃:
$ ./EFuzz replay out/crash/SIGSEGV_XXXX_mYYYYY.patch
调试崩溃:
$ ./EFuzz replay out/crash/SIGSEGV_XXXX_mYYYYY.patch -d
工具使用样例
在第一阶段,我们可以使用下列命令记录gnome-calculator应用程序的所有环境信息:
$ ./EFuzz record gnome-calculator
上述命令会创建一个out/子目录,所有收集到的数据会记录在out/RECORD.pcap.gz文件中。
在第二阶段,我们就可以使用下列命令来对gnome-calculator应用程序执行模糊测试了:
$ ./EFuzz fuzz
EFuzz会使用第一阶段记录下的数据作为初始种子,并重复执行目标应用程序。在此过程中,EFuzz还会对初始种子不断地进行编译,以尝试触发新的程序行为或程序崩溃。
发现的程序奔溃信息会存储到out/crash/子目录中,下列命令可以复现崩溃:
$ ./EFuzz replay out/crash/SIGSEGV_XXXX_m0YYYY.patch
工具运行演示
在下面的例子中,演示了如何使用EFuzz对一款GUI应用程序执行模糊测试:
EFuzz:基于程序环境的通用模糊测试工具
许可证协议
本项目的开发与发布遵循GPL-3.0开源许可协议。
项目地址
EFuzz:
https://github.com/GJDuck/RRFuzz

原文始发于微信公众号(FreeBuf):EFuzz:基于程序环境的通用模糊测试工具

 

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年5月24日22:20:20
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   EFuzz:基于程序环境的通用模糊测试工具https://cn-sec.com/archives/2775721.html

发表评论

匿名网友 填写信息