用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


            相关文章
            |
            3天前
            |
            JSON JavaScript 数据格式
            超有意思的模糊搜索
            超有意思的模糊搜索
            |
            6月前
            |
            SQL 监控 算法
            7年经验之谈 —— 什么是模糊测试?
            7年经验之谈 —— 什么是模糊测试?
            |
            3天前
            需求澄清时总是很模糊怎么办?
            需求澄清时总是很模糊怎么办?
            |
            3天前
            |
            网络协议 JavaScript 测试技术
            网络安全-好用的模糊测试器汇总与思考
            网络安全-好用的模糊测试器汇总与思考
            117 0
            |
            3天前
            |
            算法
            [Halcon&定位] 形状匹配和灰度匹配对比
            [Halcon&定位] 形状匹配和灰度匹配对比
            94 0
            |
            3天前
            |
            前端开发 API
            前端模糊实现那点事
            前端模糊实现那点事
            |
            计算机视觉
            复现扫描全能王的增强锐化
            复现扫描全能王的增强锐化
            239 0
            |
            JavaScript
            计算属性实现模糊搜索功能场景
            我相信大家在项目中都会遇到模糊搜索这个功能要求,即我们在输入框内输入文字后显示与输入文字相关的关键字,那这个具体实现方案是什么,这是我在最近一期蓝桥杯楼赛中遇到的业务需求,大家可以来思考一下,下面我将进行实现详解
            113 2
            计算属性实现模糊搜索功能场景
            |
            机器学习/深度学习 数据挖掘
            关于模糊理论及简单应用
            关于模糊理论及简单应用
            611 0
            关于模糊理论及简单应用
            |
            Web App开发 前端开发 异构计算
            疑难杂症:运用 transform 导致文本模糊的现象探究
            疑难杂症:运用 transform 导致文本模糊的现象探究
            375 0
            疑难杂症:运用 transform 导致文本模糊的现象探究