hu1y40's blog

FUZZ
FUZZ

FUZZ 总览篇

FUZZ 总览篇 0x00 前言 本文的目的在于对一些FUZZER进行收集,随后挑选几个去体验。 0x01 简介 模糊测试(Fuzz Testing)是一种自动化的测试方法,通过输入大量的随机、无效或异常数据(称为“模糊”或“模糊输入”)来评估目标程序的稳定性和安全性。在软件开发的安全性和鲁棒性方面,模糊测试被广泛用于查找潜在的漏洞和错误。 0x02 术语 1.Corpus 语料库 Or test corpus, or fuzzing corpus.一组测试输入。在大多数情况下,它指的是生成最大代码覆盖率的一组最小…

2023年12月5日 0条评论 2696点热度 2人点赞 hu1y40 阅读全文
DoS

MP4Box 无限循环漏洞

MP4Box 无限循环漏洞 0x00 前言 漏洞软件地址: https://github.com/gpac/gpac 0x01 漏洞挖掘 AFL++: ./configure --static-bin 0x02 漏洞分析 gdb调试crash文件,触发命令为MP4Box -v -fstat <crashfile>。 堆栈如下: 先看无限循环的地方在av_parsers.c:1639处。 gf_bs_read_int函数的两个参数第一个为bitstream,第二个为读取的Bits数,函数为从bitstea…

2023年12月1日 0条评论 2048点热度 0人点赞 hu1y40 阅读全文
FUZZ

Fuzzing101 7

libtiff 0x00 环境准备 本实验均使用项目自带的虚拟机。 0x01 实验 1.1 环境准备 目录创建 cd $HOME mkdir fuzzing_vlc && cd fuzzing_vlc 下载vlc-3.0.7.1 wget https://download.videolan.org/pub/videolan/vlc/3.0.7.1/vlc-3.0.7.1.tar.xz tar -xvf vlc-3.0.7.1.tar.xz && cd vlc-3.0.7.1/ 安装依…

2023年10月7日 0条评论 1208点热度 0人点赞 hu1y40 阅读全文
FUZZ

Fuzzing101 8

AdbeRdr 0x00 环境准备 本实验均使用项目自带的虚拟机。 0x01 实验 1.1 环境准备 目录创建 cd $HOME mkdir fuzzing_adobe && cd fuzzing_adobe 安装afl-qemu sudo apt install ninja-build libc6-dev-i386 cd ~/Downloads/AFLplusplus/qemu_mode/ CPU_TARGET=i386 ./build_qemu_support.sh # 安装完把afl-qemu…

2023年10月7日 0条评论 1114点热度 0人点赞 hu1y40 阅读全文
FUZZ

Fuzzing101 4~6

libtiff 0x00 环境准备 本实验均使用项目自带的虚拟机。 0x01 实验 1.1 环境准备 目录创建 cd $HOME mkdir fuzzing_tiff && cd fuzzing_tiff/ 下载tiff-4.0.4 wget https://download.osgeo.org/libtiff/tiff-4.0.4.tar.gz tar -xzvf tiff-4.0.4.tar.gz 配置编译选项,并编译 CFLAGS="--coverage" LDFLAGS="--coverag…

2023年10月7日 0条评论 1260点热度 0人点赞 hu1y40 阅读全文
FUZZ

Fuzzing101 1~3

xpdf 0x00 环境准备 本实验均使用项目自带的虚拟机。 0x01 实验 1.1 环境准备 目录创建 cd $HOME mkdir fuzzing_xpdf && cd fuzzing_xpdf/ 安装依赖 sudo apt install build-essential 下载Xpdf3.02 wget https://dl.xpdfreader.com/old/xpdf-3.02.tar.gz tar -xvzf xpdf-3.02.tar.gz 构建Xpdf cd xpdf-3.02 sud…

2023年10月7日 0条评论 1147点热度 0人点赞 hu1y40 阅读全文
FUZZ

Trinity 源码阅读

Trinity 源码阅读 0x00 介绍 Trinity是一个Linux内核系统调用fuzz软件。 本文依照文件夹来进行源码阅读。 0x01 shm.c 1.void create_shm(void) 作用 创建了一块共享内存,是系统页面大小的整数倍。页面大小通过getpagesize()获取;共享内存大小通过shm_size = (sizeof(struct shm_s) + page_size - 1) & PAGE_MASK;计算;PAGE_MASK=(~(page_size-1)) 创建的shm为整…

2023年10月7日 0条评论 1722点热度 2人点赞 hu1y40 阅读全文
FUZZ

AFL代码阅读 III

0x00 前言 为了解决使用AFL++进行Fuzzing的部分问题,个人决定对AFL的代码进行阅读,此为第一部分。 0x01 变量 1.1 变量相关 1.1.1 计数 rand_cnt 记录种子使用的次数。减到0换个种子。 queued_paths 队列中测试用例的数目 pending_not_fuzzed 进入队列但是没有执行的数目 cycles_wo_finds 没有新路径的循环次数。 queued_at_start 初始的输入数目 link_or_copy 将第一个参数硬连接到第二个参数。 nuke_resu…

2023年10月7日 0条评论 1905点热度 0人点赞 hu1y40 阅读全文
FUZZ

AFL代码阅读 II

0x00 前言 为了解决使用AFL++进行Fuzzing的部分问题,个人决定对AFL的代码进行阅读,此为第二部分。 0x01 LLVM 1.1 起源 LLVM是底层虚拟机的英文缩写。 根据不同的场景,LLVM可能指示以下内容: LLVM项目/基础架构。此时,LLVM指代多个构建一个完整编译的项目,包括前端后端,优化器,汇编器,链接器,libc++。compiler-rt以及JIT引擎。 基于LLVM的编译器。此时LLVM指代部分或者完全采用LLVM基础架构构建的编译器。例如某个编译器可以采用LLVM作为前端或者后端…

2023年10月7日 0条评论 1770点热度 0人点赞 hu1y40 阅读全文
FUZZ

AFL代码阅读 I

0x00 前言 为了解决使用AFL++进行Fuzzing的部分问题,个人决定对AFL的代码进行阅读,此为第一部分。 0x01 目录结构 插桩模块 afl-as.c,afl-gcc.c:一般插桩模式,针对源码插桩,编译器可以用gcc,clang llvm_mode:llvm插桩模式,针对源码插桩,编译器是哦那个clang qemu_mode:qemu插桩模式,针对二进制文件插桩 fuzzer模块 afl-fuzzer.c:fuzzer实现的核心代码,AFL主体 其他辅助模块 afl-analyze:对测试用例进行分析…

2023年10月7日 0条评论 1501点热度 0人点赞 hu1y40 阅读全文

近期文章

  • 加密算法
  • 2023年度总结
  • RTSPServer StackOverflow Vulnerability
  • FUZZ 总览篇
  • MP4Box 无限循环漏洞

近期评论

  1. EALSEN 发表在 CVE-2023-40477 Winrar RCE漏洞分析
  2. hu1y40 发表在 钓鱼手法
  3. hu1y40 发表在 Cobalt Strike 初探
  4. hu1y40 发表在 CVE-2010-2553 MicrosoftWindows Cinepak 编码解码器解压缩漏洞
书签
  • neko的博客

COPYRIGHT © 2023 hu1y40's blog. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

鄂ICP备2021009673号-1