引用师兄的话“一个AFL最简化的流程 ”fuzz+分析crash“就是这样入门的~”
第一步:安装 AFL
这一步其实没啥说的,就是官网下载最新版本,http://lcamtuf.coredump.cx/afl/
![](https://i-blog.csdnimg.cn/blog_migrate/f7fb295598d7f1b0ee1ac0890c885801.png)
然后解压,之后安装
make
sudo make install
第二步:插桩编译测试
写个c程序afl_test.c,准备编译,代码如下:
#include <stdio.h>
int main(int argc, char *argv[])
{
char buf[100]={0};
gets(buf);//存在栈溢出漏洞
printf(buf);//存在格式化字符串漏洞
return 0;
}
使用命令 afl-gcc -g -o afl_test afl_test.c 编译
成功之后创建两个文件夹,结果如图:
![](https://i-blog.csdnimg.cn/blog_migrate/d0d925729d15498f69f654068e85f4c7.png)
【注】这里是插桩编译,之前以为会在之后fuzz的时候变,但是实际上不会变,引用师兄:“咱们习惯把afl_test称为 fuzzer,就是一种fuzz的“驱动器”,这个fuzzer是不变的0.0”
第三步:开始Fuzz
输入指令:afl-fuzz -i fuzz_in -o fuzz_out ./afl_test 开始fuzz
这时候应该会出现一些问题
![](https://i-blog.csdnimg.cn/blog_migrate/48045adba29542f0adb3788e1e50cb9b.png)
解决方案
1.查看报错,发现有个问题,需要 core_pattern
2.切换root
3.按提示输入指令切换 echo core >/proc/sys/kernel/core_pattern
4.重新输入指令 afl-fuzz -i fuzz_in -o fuzz_out ./afl_test
正常界面
![](https://i-blog.csdnimg.cn/blog_migrate/255b3521e09f02b2e7fb48c394f613f3.png)
当如图界面,框中显示2的时候,可以 CTRL + C 停止
第四步:分析crash
![](https://i-blog.csdnimg.cn/blog_migrate/36b9a2bb6953c564446d5e69d3e8ea23.png)
使用xxd命令查看crash内容。
错误分析:(2020年6月14日)
1. [-] PROGRAM ABORT : Program 'example' not found or not executable
Location : check_binary(), afl-fuzz.c:6894
![](https://i-blog.csdnimg.cn/blog_migrate/9d64636a06219f16b4cc94ccccd8fa0c.png)
有时候出现这种错误,查看源码 6894行:
![](https://i-blog.csdnimg.cn/blog_migrate/19855267cf06eb73f97dea9b78304a7b.png)
是因为没有添加 ./ ,因为是要可执行文件,所以必须加 ./ ,否则会认为路径有问题。
2.The current memory limit (50.0 MB) is too restrictive, causing an OOM
fault in the dynamic linker. This can be fixed with the -m option. A
simple way to confirm the diagnosis may be:
( ulimit -Sv $[49 << 10]; /path/to/fuzzed_app )
![](https://i-blog.csdnimg.cn/blog_migrate/8a8927a4198f73a39ed9252609107105.png)
这种情况就是内存设置太小了,或者程序所需要的内存太大了,一般情况下加上 “-m none” 就好了
3. 有时候想要继续之前的afl,就需要用到之前的命令,然后把 -i 命令后面的输入文件夹改为 -
也就是:
afl-fuzz -m none -i - -o outfuzz/ ./example
4. cpu调度问题,按提示进行
![](https://i-blog.csdnimg.cn/blog_migrate/af4b29ba943a238bc65f5c46208cbcac.png)