用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月前
            |
            编解码 计算机视觉 索引
            OpenCV使用单目标匹配从图像中选择最佳的匹配结果及查找重复图像实战(附Python源码)
            OpenCV使用单目标匹配从图像中选择最佳的匹配结果及查找重复图像实战(附Python源码)
            139 0
            |
            1月前
            |
            人工智能 自然语言处理 测试技术
            将图像自动文本化,图像描述质量更高、更准确了
            【7月更文挑战第11天】AI研究提升图像文本化准确性:新框架IT融合多模态大模型与视觉专家,生成详细无幻觉的图像描述。通过三个阶段—全局文本化、视觉细节提取和重描述,实现更高质量的图像转文本。研究人员建立DID-Bench、D2I-Bench和LIN-Bench基准,展示描述质量显著提升。尽管有进步,仍面临幻觉、细节缺失及大规模处理挑战。[论文链接](https://arxiv.org/pdf/2406.07502v1)**
            17 1
            |
            3月前
            |
            机器学习/深度学习 文字识别 算法
            [Halcon&图像] 缺陷检测的一些思路、常规检测算法
            [Halcon&图像] 缺陷检测的一些思路、常规检测算法
            1135 1
            |
            3月前
            需求澄清时总是很模糊怎么办?
            需求澄清时总是很模糊怎么办?
            |
            3月前
            |
            监控 测试技术
            测试结果不准确,该怎么办?
            测试结果不准确,该怎么办?
            |
            3月前
            |
            网络协议 JavaScript 测试技术
            网络安全-好用的模糊测试器汇总与思考
            网络安全-好用的模糊测试器汇总与思考
            156 0
            |
            3月前
            |
            算法
            [Halcon&定位] 形状匹配和灰度匹配对比
            [Halcon&定位] 形状匹配和灰度匹配对比
            156 0
            |
            3月前
            |
            前端开发 API
            前端模糊实现那点事
            前端模糊实现那点事
            74 0
            |
            9月前
            |
            机器学习/深度学习 算法 测试技术
            【网安专题10.25】10 TitanFuzz完全自动化执行基于变异的模糊测试:生成式(如Codex)生成种子程序,逐步提示工程+第一个应用LLM填充模型(如InCoder)+差分测试
            【网安专题10.25】10 TitanFuzz完全自动化执行基于变异的模糊测试:生成式(如Codex)生成种子程序,逐步提示工程+第一个应用LLM填充模型(如InCoder)+差分测试
            168 0
            |
            计算机视觉
            复现扫描全能王的增强锐化
            复现扫描全能王的增强锐化
            265 0