用AFL进行模糊测试。

简介: 用AFL进行模糊测试

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct Image
{
char header[4];
int width;
int height;
char data[10];
};
void stack_operation(){
    char buff[0x1000];
    while(1)
      stack_operation(); //recusively call function and allocate stack memory
  }
int ProcessImage(char* filename){
  FILE *fp;
  char ch;
  struct Image img;
  fp = fopen(filename,"r");            //Statement   1
  if(fp == NULL)
  {
    printf("\nCan't open file or file doesn't exist.\r\n");
    exit(0);
  }
  while(fread(&img,sizeof(img),1,fp)>0)
  {
    //if(strcmp(img.header,"IMG")==0)
    //{
    printf("\n\tHeader\twidth\theight\tdata\t\r\n");
    printf("\n\t%s\t%d\t%d\t%s\r\n",img.header,img.width,img.height,img.data);
    //integer overflow 0x7FFFFFFF+1=0
    //0x7FFFFFFF+2 = 1
    //will cause very large/small memory allocation.
    int size1 = img.width + img.height;
    char *buff1;
    if(size1/2==0){
      do{
        buff1=(char*)malloc(size1);
      }while(buff1);
    }
    else{
      stack_operation();
    }
  }
  return 0;
  }
  int main(int argc,char **argv)
{
    ProcessImage(argv[1]);
    return 0;
  }

此C程序包含上述所有漏洞的易受攻击的代码,然后用户可以使用AFL或hongfuzz或其他所需的方法对其进行模糊处理。

**如何编译**

只需在命令提示符下键入“ make”即可。Makefile包含在其中。

如何为AFL生成输入?

只需创建一个示例输入文件,如下所示,其余的AFL会小心处理:

echo "IMG" >input/1.tx

AFL将自动生成新的测试用例,并发现上述大多数漏洞。多数民众赞成在AFL的美丽:)

如何使用AFL对其进行模糊处理?

1.首先使用以下命令编译该程序:

    afl-gcc -g -fsanitize=address imgRead.c -o imgread

    2.运行以下命令:

      afl-fuzz -i input -o output -m none -- ./imgRead @@

      如何使用honggfuzz对其进行模糊处理

      1.首先使用以下命令编译该程序:


      hfuzz-gcc -g -fsanitize=address imgRead.c -o imgread

      2.运行以下命令:

        hongfuzz -i input -- ./imgread ___FILE___

        如何使用libfuzzer进行模糊测试

        您需要修改C代码,可以从这里获取更新的代码:https : //github.com/hardik05/Damn_Vulnerable_C_Program/blob/master/imgRead_libfuzzer.c

        1.使用以下命令编译程序:

          clang -fsanitize=fuzzer,address,undefined -g imgRead_libfuzzer.c -o imgRead_libfuzzer

          ** 2。运行以下命令进行模糊测试:

            ./imgRead_libfuzzer

            您可以在此处查看视频教程:

            完整的模糊测试播放列表:

            https://www.youtube.com/watch?v=r7ucv2kN4j4&list=PLHGgqcJIME5kYhOSdJjvtVS4b4_OXDqM-

            以下单个视频:

            Linux

            AFL ++

            [使用AFLplusplus进行模糊处理]安装AFLPlusplus并使用简单的C程序进行模糊处理

             https://www.youtube.com/watch?v=9wRVo0kYSlc

            [使用AFLplusplus进行模糊处理]如何在Linux上以持久模式对没有源代码的二进制文件进行模糊处理

             https://www.youtube.com/watch?v=LGPJdEO02p4


            AFL

            [使用AFL进行模糊处理]如何在Ubuntu上安装AFL

             https://www.youtube.com/watch?v=r7ucv2kN4j4

            [使用AFL模糊处理]使用AFL模糊简单的C程序

             https://www.youtube.com/watch?v=NiGC1jxFx78&t=66s

            [使用AFL进行模糊处理]使用AFL查找不同类型的漏洞

             https://www.youtube.com/watch?v=m1RkShHzx_8&t=151s

            [使用AFL进行模糊处理]使用崩溃行走对崩溃进行分类,并使用GDB查找根本原因

             https://www.youtube.com/watch?v=5R2gPkCXZkM

            [使用AFL进行模糊处理]在Qemu模式下,使用AFL对没有源代码的二进制文件进行模糊处理。

             https://www.youtube.com/watch?v=np3sLLFQs6I


            Honggfuzz

            [使用honggfuzz进行模糊处理]使用HongFuzz

            https://www.youtube.com/watch?v=6OBXJtEe-d8对简单的C程序进行模糊处理

            [使用honggfuzz进行模糊处理] Hongfuzz,checksec(pwntools),ASAN

             https://www.youtube.com/watch?v=Lr8pLQRTHac


            Windows

            Libfuzzer

            [使用libfuzzer模糊测试]如何使用LibFuzzer模糊简单的C程序

            https://www.youtube.com/watch?v=hFva8kJQwnc&list=PLHGgqcJIME5m7HaHfACayoyN0TRe2PHRp

            [使用libfuzzer,AFL进行模糊处理]如何使用AFL来模糊libfuzzer利用程序

            https://www.youtube.com/watch?v=HfEqm3TrfwM&list=PLHGgqcJIME5m7HaHfACayoyN0TRe2PHRp&index=2


            Radamsa

            [使用Radamsa进行模糊处理]使用Radamsa进行简单的C程序模糊处理

            https://youtu.be/1FRsXVNpynQ


            WinAFL

            [使用WinAFL进行模糊处理]用WinAFL进行简单的C程序模糊处理

            https://www.youtube.com/watch?v=Va_Wtxf3DMc

            [使用WinAFL进行模糊处理]什么是模糊处理功能,如何确保一切正常?

            https://www.youtube.com/watch?v=HLORLsNnPzo

            640.png


            相关文章
            |
            7月前
            |
            JavaScript 前端开发
            js中模糊搜索 模糊匹配如何实现?
            js中模糊搜索 模糊匹配如何实现?
            |
            7月前
            |
            编解码 计算机视觉 索引
            OpenCV使用单目标匹配从图像中选择最佳的匹配结果及查找重复图像实战(附Python源码)
            OpenCV使用单目标匹配从图像中选择最佳的匹配结果及查找重复图像实战(附Python源码)
            281 0
            |
            7月前
            |
            自然语言处理 Java
            BoolQueryBuilder 如何进行模糊查询 并且模糊过滤去除name为Ab的 【4月更文挑战第2天】
            如果你想使用 BoolQueryBuilder 进行模糊查询,并且要排除那些 name 字段为特定值(如 "Ab")的文档,你可以使用 must_not 子句与 FuzzyQueryBuilder 和 TermQueryBuilder 组合。以下是如何在 Elasticsearch 中实现这一需求的示例: Java代码实现 假设你想对字段 description 进行模糊查询,并确保排除 name 字段为 "Ab" 的文档: java Copy code import org.elasticsearch.index.query.BoolQueryBuilder; import org.e
            1040 3
            |
            7月前
            |
            JSON JavaScript 数据格式
            超有意思的模糊搜索
            超有意思的模糊搜索
            |
            7月前
            需求澄清时总是很模糊怎么办?
            需求澄清时总是很模糊怎么办?
            |
            7月前
            |
            JavaScript
            filter来实现模糊搜索的功能-很有用!
            filter来实现模糊搜索的功能-很有用!
            |
            7月前
            |
            网络协议 JavaScript 测试技术
            网络安全-好用的模糊测试器汇总与思考
            网络安全-好用的模糊测试器汇总与思考
            196 0
            |
            7月前
            |
            算法
            [Halcon&定位] 形状匹配和灰度匹配对比
            [Halcon&定位] 形状匹配和灰度匹配对比
            232 0
            |
            7月前
            |
            前端开发 API
            前端模糊实现那点事
            前端模糊实现那点事
            103 0
            |
            算法
            基于matlab实现生成模糊fis文件,包括模糊隶属函数和模糊规则等,不使用fuzzy工具箱
            基于matlab实现生成模糊fis文件,包括模糊隶属函数和模糊规则等,不使用fuzzy工具箱
            431 0