×
注意!页面内容来自https://www.codeleading.com/article/79686583580/,本站不储存任何内容,为了更好的阅读体验进行在线解析,若有广告出现,请及时反馈。若您觉得侵犯了您的利益,请通知我们进行删除,然后访问 原网页
AFL简介:一个面向安全的模糊程序,采用新型的编译时工具和遗传算法来自动发现干净、有趣的测试用例,从而触发目标二进制文件中的新内部状态。
Ubuntu 20.04
Target Platform:x86_64 and arm64
必备软件包:
make/build-essential
sudo apt-get install build-essential make
https://lcamtuf.coredump.cx/afl/releases/afl-latest.tgz
CC=/path/to/afl-gcc CXX=/path/to/afl-g++ ./configure --disable-shared
make clean all
4.获取一个小的但是有效的输入文件,对程序有意义
5.如果这个程序从标准输入流进行读取,运行afl-fuzz就像
./afl-fuzz -i testcase_dir -o findings_dir -- \
/path/to/tested/program [...program's cmdline...]
如果这个项目从一个文件里获取输入,你能用@@在这个命令行中
6.通过及时查阅文档来调查模糊器界面用户中显示为红色的任何东西
注意:如果出现了以下情况
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-B5ablS6H-1648625174936)(https://note.youdao.com/yws/res/33313/WEBRESOURCE82c44f88556a2a873616345d20063b06)]
需要对操作系统核心转储进关闭
sudo su
echo core >/proc/sys/kernel/core_pattern
exit
创建一个测试案例文件 afl_test.c
#include <stdlib.h>
#include <signal.h>
void test (char *buf) {
int n = 0;
if(buf[0] == 'a') n++;
if(buf[1] == 'f') n++;
if(buf[2] == 'l') n++;
if(buf[3] == '!') n++;
printf("%d\n",n);
if(n == 4) {
printf("awesome!\n");
raise(SIGSEGV);
}else{
printf("wrong!\n");
}
}
int main(int argcchar *argv[]) {
char buf[100];
test(argv[1]);
return 0;
}
使用 afl-gcc进行编译
afl-gcc -g -o test test_afl.c
使用afl-fuzz进 fuzzing测试
afl-fuzz -i fuzz_in -o fuzz_out ./afl_test @@
其中两个@@表示占位符 (因为源程序中需要在运行中有相应的字符串输入),以及需要创建fuzz_in,用来存放初始的种子和 fuzz_out最终得到的crash
最终得到如图所示的AFL运行结果:
(https://note.youdao.com/yws/res/33321/WEBRESOURCE9c334341f7a79679061c90b6d3c3a61b)]
使用AFL编译LAVA_M 在运行./validate.sh之前,设置CC和CXX的环境,运行命令: 可以通过env查看环境变量是否设置好,然后运行./validate.sh即可。 问题 修改validate.sh文件中./configure这一行命令并不能利用afl成功编译,运行afl提示程序无插桩。...
1. 过程概览 下载编译libmodbus 利用 preeny 库辅助fuzz 获取样本数据,数据处理 启动afl 2. 具体步骤 2.1 下载编译libmodbus libmodbus库是一个用于 modbus 通讯的库,通过这个库可以很方便的实现 modbus 服务器和客户端的通讯。 首先下载好源码,目录下的 tests 目录里面有一些示例程序。 然后编译 modbus server,使用 a...
下载地址:https://www.apache.org/dyn/closer.cgi?path=/kafka/1.0.2/kafka_2.11-1.0.2.tgz 文档地址:http://kafka.apache.org/10/documentation.html#quickstart 下载后配置,暂时不配 开启服务 开启zookeeper 开启kafka服务 创建topic(主题/队列) 查看主...
简介 jhipster 是一个开源的脚手架工具.可以 基于 Node. + Yeoman + Bower + Angular JS + Gulp + Spring Boot 等 生成一个完整的前端 + 后端 工程,是各种最佳实践的结合。 官方教程 - 中文 : https://www.jhipster-cn.tech/ 官方教程 - 英文 : https://www.jhipster.tech...
记录一下,安装过程 风来了.fox 1.JAVA JDK 安装和环境变量配置 http://blog.csdn.net/fenglailea/article/details/52457731 2.kafka 下载 http://kafka.apache.org/downloads.html 选择【Binary downloads】下载 这里选择当前最新版(2016-09-07): Scala 2....
一、redis下载 1.首先下载redis 下载地址 2.启动服务 二、在spring(IDEA)中配置redis 1.依赖包安装 在maven里添加依赖包 2.Spring 项目集成进缓存支持 要启用缓存支持,需要创建一个新的 CacheManager bean。CacheManager 接口有很多实现,本文演示的是和 Redis 的集成,自...
一、docker安装 1、环境:CentOS7.4 2、添加docker的yum源命令行输入 cat >/etc/yum.repos.d/docker.repo <<-EOF 3、安装Docker软件包 yum install docker-engine 4、启动docker service docker start 5、测试运行下hello-world镜像 docker run...
1.下载 官网下载 :https://node.org/en/download/ 下载好之后,一路next即可 2. 更改配置 2.1 更改目录 2.1.1 更改缓存目录 2.1.2 更改全局安装目录 以后安装的模块都会安装到此目录下 2.2 更改镜像 设置为国内的镜像,以便于更快的下载模块 2.3 查看当前配置 3. 安装一些常用模块 3.1 安装最新的npm 加-g参数是全局安装,也就是将...
centos 7 安装apioak 安装 OpenResty 和其他必需的依赖项 安装MariaDB 安装aoioak 导入数据 修改数据库链接信息并启动 配置和使用都很简单,方便在同一个主机部署多域名的网站。 转载请联系:宋洋葱...
JFrog_ChartCenter 下载helm介质 配置helm 部署tiller-仅供参考(如果将tiller部署k8s集群中,那么tiiler将获取k8s的cluster-admin权限,有一定安全隐患。我们考虑将tiller部署在本地节点中。即 tillerless) 在本地节点部署tillerless (个人感觉就是 centos yum源部署在 http/ftp上,所有节点repo文件...