Fuzz之AFL

本文介绍了AFL(American fuzzy lop)模糊测试工具的使用,包括其工作原理、安装、实验目的及步骤。通过实验,读者将理解如何使用AFL对简单程序进行模糊测试,识别其潜在问题。实验涉及创建测试用例、使用afl-showmap等工具,并提示了优化fuzzing效率的技巧。
摘要由CSDN通过智能技术生成

预备知识

关于AFL

American fuzzy lop号称是当前最高级的Fuzzing测试工具之一,由谷歌的Michal Zalewski所开发。通过对源码进行重新编译时进行插桩(简称编译时插桩)的方式自动产生测试用例来探索二进制程序内部新的执行路径。与其他基于插桩技术的fuzzers相比,afl-fuzz具有较低的性能消耗,有各种高效的fuzzing策略和tricks最小化技巧,不需要先行复杂的配置,能无缝处理复杂的现实中的程序。

实验目的

通过该实验了解AFL的使用方法,能够通过AFL模糊测试一些简单的软件,明白fuzz的基本方法和思想。

实验环境

在这里插入图片描述
服务器:kali,IP地址:随机分配
辅助工具:安装afl
测试脚本请在实验机内下载使用:http://tools.hetianlab.com/tools/T037.zip

实验步骤一

安装AFL(已装)
在这里插入图片描述
查看路径可以看到afl安装的文件:

ls -l /usr/bin/afl*

在这里插入图片描述
作用分别为:
●afl-gcc和afl-g++分别对应的是gcc和g++的封装。
●afl-clang和afl-clang++分别对应clang的c和c++编译器封装À。
●afl-fuzz是AFL的主体,用于对目标程序进行fuzz。
●afl-analyze可以对用例进行分析,通过分析给定的用例,看能否发现用例中有意义的字段。
●afl-qemu-trace用于qemu-mode,默认不安装,需要手工执行qemu-mode的编译脚本进行编译,后面会介绍。
●afl-plot生成测试任务的状态图。
●afl-tmin和afl-cmin对用例进行简化。
●afl-whatsup用于查看fuzz任务的状态。
●afl-gotcpu用于查看当前CPU状态。
●afl-showmap用于对单个用例进行执行路径跟踪。
创建本次实验的目录:
在这里插入图片描述
已经给出源代码test.c,该代码编译后得到的程序如果被传入“deadbeef”则会终止,如果传入其他字符会原样输出:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值