使用AFL++对GIMP2.10.30进行漏洞挖掘
前言
因为最近找实习找到自闭了,还被公司的人说没有实战漏洞挖掘经验,心态崩了,明明我简历里就有漏洞编号,只是写到最后面去了,哭辽,什么时候能找到实习啊!(已经拿到长亭offer了) 这里是看到fuzz101项目里有对GIMP的fuzz,我找了最新版本的GIMP进行fuzz,看看能不能fuzz出漏洞。
AFL++安装
依赖安装
这里使用的是ubuntu20.04,llvm、lld和clang都用12的版本,11的版本一直编译不出来lto模式
1 | |
下载编译AFL++
1 | |
(终于可以编译出afl-clang-lto了)
GIMP安装
依赖安装
1 | |
安装babl
1 | |
把meson.build里面58-59行删了,然后开始编译
1 | |
安装GEGL图形库
1 | |
安装GIMP
这次我们fuzz的gimp 2.10.30版本
1 | |
在编译之前,我们需要用到AFL的持久模式,需要在app/xcf文件下的xcf.c加入持久模式的宏

然后configure,这里用到了AFL++的afl-clang-lto进行插桩,afl-clang-lto比afl-clang-fast速度要快,并且不会造成哈希碰撞
1 | |

缺少的库一个一个安装就好
1 | |
使用AFL++进行fuzz
种子获取
这里我们需要用xcf文件,可以去google搜索xcf file download下载几个示例文件
Fuzzer运行
1 | |
最好-D打开位翻转等变异功能

等它跑多几天看看
结果
这边分析发现一个crash,向作者提交了issue
https://gitlab.gnome.org/GNOME/gimp/-/issues/8120