浅谈开源灰白盒模糊测试工具bufferfuzzer-青草莓科技
开发bufferfuzzer的初衷,主要是想白盒fuzz工具拥有这样的能力
对于那些带有结构的buffer测试目标,无论是文件,协议,消息,还是json,xml等类型, 通过建模,让白盒fuzz工具了解buffer的内部结构, 并针对结构内子元素的类型,大小,初值,元素之间的关系等, 进行针对性变异,以提高变异效率,从而发现更多安全问题希望我的工具可以帮助到你
简介
工具基于codefuzzer工具扩展开发,需要同时连接libcodefuzzer.a使用,并引用工具的头文件bufferfuzzer.h,
就可以编写你的测试用例,针对函数接口进行fuzzing测试
如何编译工具
工具如何编译
如何编译被测代码
如何编译被测代码
简单使用举例
例子1
例子2
用例编写
单独模型用例
模型+bin文件用例.md
多模型用例.md
单程序多用例
模型+setget直接调用
建模
普通元素
元素Number建模
元素S32等建模
元素String建模
元素Buf(Blob)建模
元素Bit(Flag)建模
元素Padding建模
结构元素
结构BufferFuzzer建模
结构Buffer(DataModel)建模
结构Struct(Block)建模
结构Union(Choice)建模
结构Array建模
结构Bits(Flags)建模
结构Transform建模
属性
属性name
属性length
属性size
属性valueType
属性token
属性check(constraint)
关系修饰元素
ref建模
Relation(Size)建模
Relation(Count)建模
Fixup建模
Analyzer建模
配置
Configure
Defaults
mutator
适配
场景
适配gtest
协议
arp
ipv4
dhcp
http
httpRest
文件
jpg
mp4
通用建模
json通用建模
xml通用建模
工具原理
基本原理
模型元素类型
变异算法
扩展
自定义Transform
自定义Fixup
自定义Relation
自定义Analyzer
自定义check(constraint)
调试
调试
模型测试
解析bin测试
普通测试
其他
bug复现
报告生成
青草莓科技