Fuzz初尝试:AFL安装和使用
AFL初次尝试
看了一些fuzz的文章但是一直没有做过小的demo,这次算是入门级别的尝鲜。
AFL的安装
安装环境:vm虚拟机、Ubuntu18
- 首先检测LLVM和CLANG是否安装:
sudo apt-get install clang
sudo apt-get install llvm
安装时出现的问题:
E: 无法获得锁 /var/lib/dpkg/lock-frontend - open (11: 资源暂时不可用)
E: 无法获取 dpkg 前端锁 (/var/lib/dpkg/lock-frontend),是否有其他进程正占用它?
解决方案:
ps -e | grep apt
然后执行sudo kill 进程号
- 在目录下下载包:
wget http://lcamtuf.coredump.cx/afl/releases/afl-2.52b.tgz
tar -zxvf afl-2.52b.tgz
cd afl-2.52b
make
sudo make install
然后尝试使用afl-fuzz命令
选择目标程序
本人采用了网上的简单代码来进行测试
- 创建一个testfile文件夹,然后在该文件夹下创建测试文件afl_test.c,内容如下:
#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-gcc -g -o afl_test test.c
- 这里的gcc -g是在编译的时候,生成调试信息,该程序可以被调试器调试。
- 接着建立fuzz_in文件夹,创建输入文件testcase,输入文件中写几个简单单词,fuzzing时会产生变异。
mkdir fuzz_in
echo "hello" > fuzz_in/testcase
- 执行下列语句就开始fuzz了
afl-fuzz -i fuzz_in -o output ./afl_test
结果出错了
解决方案:
$ sudo su
$ echo core >/proc/sys/kernel/core_pattern
- 再次执行下列语句开始fuzz
afl-fuzz -i fuzz_in -o output ./afl_test
- Ctrl+c手动终止fuzz
参考文章,感谢大佬!
https://blog.csdn.net/weixin_50972562/article/details/123379898
https://blog.csdn.net/weixin_39448417/article/details/99703723
Fuzz初尝试:AFL安装和使用相关推荐
- SQLSERVER2012里的扩展事件初尝试(上)
SQLSERVER2012里的扩展事件初尝试(上) SQLSERVER2012里的扩展事件初尝试(下) 周未看了这两篇文章: 扩展事件在Denali CTP3里的新UI(一) 扩展事件在Denali ...
- Synopsys初体验——软件安装篇
Synopsys初体验--软件安装篇 前言 一.虚拟机VMware的安装与使用 1.软件安装 2.创建自己的虚拟机 二.Synopsys系列软件的安装 前言 时光飞逝,转眼间已经是将要毕业的人了.之前 ...
- HarmonyOS实战—原子化服务初尝试
目录 原子化服务初尝试 什么是原子化服务 原子化服务的优点 创建原子化服务项目 运行原子化服务项目 目录结构分析 原子化服务初尝试 什么是原子化服务 原子化服务是HarmonyOS提供的一种面向未来的 ...
- Serverless 开发前端初尝试
Serverless 开发前端初尝试 啥是云开发 云开发serverless是一种模式,和传统模式的区别在于开发者不用维护服务器.服务器的日常维护, 负载均衡,扩容和减容, 运维,安全,日志等都交给了 ...
- Wireshark研究血族Bloodline手游聊天系统 - 初尝试
血族Bloodline手游聊天系统的相关研究 目录 1. 介绍&起因 2. Fiddler初尝试 3. Wireshark初尝试 4. 总结 一.介绍&起因 ↶ (PS. 容我说先几句 ...
- eclipse Debug 初尝试 (09.10教师节(*^▽^*))
09.10 eclipse Debug 初尝试 首先我们新建一个project,class.在其中写入我们即将要调试的源代码. 点击工具栏的瓢虫图标,进入debug界面(或者点击上面的Run-> ...
- Cydia Substrate 初尝试:刷计步软件数据
Cydia Substrate 初尝试:刷计步软件数据 Cydia Substrate 初尝试刷计步软件数据 Cydia 设备准备 探索 思路 监听器注册 事件分发 进行Hook Cydia Cydi ...
- Redis安装以及在Idea中使用Redis初尝试
本文主要完成两方面的内容,一是 安装Redis服务端及验证:二是在Idea中链接Redis,并且编写程序初步使用Redis 1:安装Redis服务端及验证(win10-64位) Redis是一个开源 ...
- Ubuntu 安装常用软件、做Windows10系统盘、初尝试更换硬盘
一.先唠一唠我买硬盘的事 电脑前几天突然开不开机,画面一直卡在logo,上网查了排查后基本能确定是硬盘的问题,不想去修电脑那修,我选择自己更换硬盘,要是原来硬盘没坏我还可以用把那个硬盘改成移动盘,要是 ...
最新文章
- linux echo写php编码,linux使用和基础操作(示例代码)
- [TJOI2017]城市(未解决)
- oracle biee需要买吗,oracle BIEE 和 IBM cognos的优点和缺点
- GdiPlus[15]: IGPLinearGradientBrush 之 GammaCorrection
- Shuffle a Array
- android开机优化-framework
- WIFI 2.4G及5G信道划分表(附无线通信频率分配表)
- 【SEED Labs 2.0】ICMP Redirect Attack Lab
- 微信小程序画布实现星星闪烁
- 云计算产品经理入门(一)
- android google map 标记,android,在googlemap上从位图添加标记
- 我让Chat GPT准备了几份SAP 顾问英文面试自我介绍的模板,大家感受一下
- MP地面站二次开发教程(五)简易地面站多机控制系统框架
- 奇偶校验,异或校验,和校验,nios串口校验
- 神都夜行录怎么在电脑上玩 神都夜行录安卓模拟器教程
- 学习自旋电子学的笔记01:微磁模拟软件OOMMF的教程(中文版)16章
- 朋友圈晒计算机三级证书,我在朋友圈晒成就感,有错吗?
- Python程序来计算锥体的体积和面积
- 来都来了,确定不白嫖吗?!
- 每日分享:Word如何翻译成中文
热门文章
- java http 401_java – 处理401错误(Spring Security)
- protobuf教程(一)---引入其他proto文件
- ssm毕设项目拼车平台0k47u(java+VUE+Mybatis+Maven+Mysql+sprnig)
- 论文(2):智能车辆、自主车辆、地面无人平台、机器人、自动化、智能驾驶等相关英文术语整理
- 一起来解读分布式日志收集系统:Facebook Scribe
- 不写sql的Java_解放双手,不写SQL!一个开源mybatis神器
- 消息推送之百度云推送Android集成与使用方法
- Unity平滑函数Lerp简单介绍
- Shader中Smoothstep和Lerp的区别
- karaf maven