您的位置:首页 > 健康 > 养生 > 朗坤智能企业管理系统_程序代码大全_“跨年”等关键词搜索达年内峰值_百度网络科技有限公司

朗坤智能企业管理系统_程序代码大全_“跨年”等关键词搜索达年内峰值_百度网络科技有限公司

2024/12/22 22:40:49 来源:https://blog.csdn.net/pyh1322712308/article/details/144600946  浏览:    关键词:朗坤智能企业管理系统_程序代码大全_“跨年”等关键词搜索达年内峰值_百度网络科技有限公司
朗坤智能企业管理系统_程序代码大全_“跨年”等关键词搜索达年内峰值_百度网络科技有限公司

AFL-Fuzz 的使用

  • 一、工具
  • 二、有源码测试
  • 三、无源码测试



一、工具

建议安装LLVM并使用afl-clang-fast或afl-clang-lto进行编译,这些工具提供了更现代和高效的插桩技术。您可以按照以下步骤安装LLVM和afl-clang-fast:

sudo apt update
sudo apt install llvm
wget http://lcamtuf.coredump.cx/afl/releases/afl-latest.tgz
tar -xf afl-latest.tgz
cd afl-<version>
make
sudo make install

二、有源码测试

在分析前,先创建两个文件夹,fuzz_in 和 fuzz_out。

fuzz_in 里面再创建个 txt 文件,里面输入一点字母即可。

还有一点,核心转储的问题。

sudo su
echo "core" > /proc/sys/kernel/core_pattern
exit

源码示例

#include <stdio.h> 
#include <stdlib.h> 
#include <unistd.h> 
#include <string.h> 
#include <signal.h> int vuln(char *str)
{int len = strlen(str);if(str[0] == 'A' && len == 66){raise(SIGSEGV);//如果输入的字符串的首字符为A并且长度为66,则异常退出}else if(str[0] == 'F' && len == 6){raise(SIGSEGV);//如果输入的字符串的首字符为F并且长度为6,则异常退出}else{printf("it is good!\n");}return 0;
}int main(int argc, char *argv[])
{char buf[100]={0};gets(buf);//存在栈溢出漏洞printf(buf);//存在格式化字符串漏洞vuln(buf);return 0;
}

对其插桩编译:afl-clang-fast -g test.c -o test

运行结果如下:

在这里插入图片描述

接下来,我们开始模糊测试:

afl-fuzz -i fuzz_in -o fuzz_out -- ./test 

运行结果如下:
在这里插入图片描述
红框是我们要关注的地方,如果cycles的颜色变绿了,说明测试的差不多了,可以 ctrl+c 中断掉了。比如下图:
在这里插入图片描述
我们查看 fuzz_out 文件夹的 crashes 文件夹。

三、无源码测试

你会发现 AFL 的 qemu-mode 有非常多的问题。这边建议不用折腾 AFL了,直接下载ALF++。

git clone https://github.com/AFLplusplus/AFLplusplus.git
cd AFLplusplus
make all

然后,进入 qemu-mode 文件夹,运行 build 脚本。

cd qemu-mode
./build_qemu_support.sh 

运行完,还得回到上级目录,也就是 AFLplusplus,然后运行 sudo make install。

cd ../
sudo make install

再测试案例的时候,别用上面插过桩的可执行文件。重新用 gcc 编译生成,记得 fuzz_out 要换个文件夹。

运行如下,等待变绿吧。

afl-fuzz -i fuzz_in -o fuzz_out_2 -Q ./afl_test2

在这里插入图片描述

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com