AFL++fuzz测试路由器固件
AFL++fuzz测试路由器固件
前言
在做fuzz的时候发现很多其实都是基于AFL工具的,以前学过一点AFL++的,但很久不用都忘记了,刚好再来测试一下路由器固件来加固一下
AFL++的使用
环境搭建我就不讲了,这篇文章做了较为详细的介绍
https://c0ke.github.io/2024/07/10/AFL++fuzz%E6%B5%8B%E8%AF%95/?highlight=afl
使用如下命令进行测试
1 | afl-fuzz -M master -m none -x xml.dict -i /path/to/corpus -o output -- /path/to/xmllint --valid @@ |
- -M 表示使用分布式fuzz
- -m 表示子进程的内存限制,这里为0
- -x 指定了模糊测试的字典
- -i 表示测试用例的输入目录
- -o 表示fuzz的结果输出目录
显示图如下
下面会详细介绍一下各个部分的含义
process timing :
- run time: 已经运行的时间。
- last new find: 上一次找到新的漏洞或问题的时间。
- last saved crash: 上一次保存崩溃日志的时间。
- last saved hang: 上一次保存挂起状态的时间。
overall results:
- cycles done: 已经完成的测试周期数量,颜色从红变蓝变绿,意味着有效测试越来越少了。
- corpus count: 初始测试用例的数量。
- saved crashes: 已经保存的崩溃数量。
cycle progress:
- now processing: 当前测试周期进度。
- runs timed out: 运行超时的次数。
map coverage:
- map density: 代码覆盖率,即已经执行的代码路径占总代码路径的比例。
- count coverage: 达到的代码路径数量。
satge progress:
- now trying: 当前测试阶段(例如,havoc表示在关键位置插入随机变异)。
- stage execs: 在当前阶段执行的测试次数。
- total execs: 总测试次数。
- exec speed: 每秒执行的测试次数,在500以下就算很慢了,应该找寻更好的测试方法
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Daily Study!