用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


            目录
            打赏
            0
            0
            0
            0
            6
            分享
            相关文章
            Microsoft邮箱API发送邮件的方法和步骤
            Aoksend详解如何使用Microsoft邮箱API发送邮件:1. 在Azure创建应用并获取访问权限;2. 设置API请求头,含Authorization和Content-Type;3. 构建JSON格式的邮件内容;4. 使用POST方法发送至API端点;5. 检查响应处理发送结果。遵循最佳实践,安全集成邮件功能。
            How to Fix “firewall-cmd: command not found” Error in ubuntu
            How to Fix “firewall-cmd: command not found” Error in ubuntu
            529 0
            RT-DETR改进策略【卷积层】| SAConv 可切换的空洞卷积 二次创新ResNetLayer
            RT-DETR改进策略【卷积层】| SAConv 可切换的空洞卷积 二次创新ResNetLayer
            118 12
            RT-DETR改进策略【卷积层】| SAConv 可切换的空洞卷积 二次创新ResNetLayer
            【设计模式——学习笔记】23种设计模式——适配器模式Adapter(原理讲解+应用场景介绍+案例介绍+Java代码实现)
            【设计模式——学习笔记】23种设计模式——适配器模式Adapter(原理讲解+应用场景介绍+案例介绍+Java代码实现)
            303 0
            阿里云服务器实例规格选型参考,根据上云场景选择适合自己的实例规格
            对于很多新手用户来说,在初次选择阿里云服务器实例规格的时候,面对众多实例规格往往不知道如何选择,因为云服务器实例规格不同,价格也不一样,本文通过一些常见的选型场景推荐,便于大家在选择云服务器实例规格时做个参考。
            阿里云服务器实例规格选型参考,根据上云场景选择适合自己的实例规格
            Fooocus 超过 180 种风格的傻瓜式 AI 图片生成工具
            Fooocus 超过 180 种风格的傻瓜式 AI 图片生成工具
            697 0
            python中substring函数使用
            python中substring函数使用
            257 0
            登录插画

            登录以查看您的控制台资源

            管理云资源
            状态一览
            快捷访问