fuzz系列之afl】的更多相关文章

afl 实战 前言 像 libFuzzer, afl 这类 fuzz 对于 从文件 或者 标准输入 获取输入的程序都能进行很好的 fuzz, 但是对于基于网络的程序来说就不是那么方便了. 这篇文章介绍用 afl 来 fuzz 网络应用程序. 介绍 afl 是一个非常厉害的 fuzz,最近几年炒的火热.它是基于代码插桩来生成测试用例,这样生成的样本就比较的好,而且针对 linux 做了许多性能优化使得速度也非常快. 使用 afl 的常规步骤 如果有源码,用 afl-gcc 或者 afl-clang…
前言 本文以 libfuzzer-workshop 为基础 介绍 libFuzzer 的使用. libFuzzer简介 libFuzzer 是一个in-process,coverage-guided,evolutionary 的 fuzz 引擎,是 LLVM 项目的一部分. libFuzzer 和 要被测试的库 链接在一起,通过一个模糊测试入口点(目标函数),把测试用例喂给要被测试的库. fuzzer会跟踪哪些代码区域已经测试过,然后在输入数据的语料库上进行变异,来使代码覆盖率最大化.代码覆盖率…
序言 Fuzzing101系列包含针对10 个真实目标的10个练习,在练习中一步一步学习Fuzzing技术的知识. 模糊测试(Fuzzing/Fuzz)是一种自动化软件测试技术,它基于为程序提供随机或变异的输入值并监视它的异常和崩溃. AFL.libFuzzer 和 HonggFuzz 是现实世界应用中最多的三个模糊器,这三个都是覆盖引导的进化模糊器(Coverage-guided evolutionary fuzzer).其中 进化(evolutionary)是一种受进化算法启发的元启发式方法…
关于AFL fuzz AFL fuzz是一个模糊测试工具,它封装了一个GCC/CLang编译器,用于对被测代码重新编译的过程中进行插桩.插桩完毕后,AFL fuzz就可以给其编译过的代码输入不同的参数参数,跟踪被测代码的执行路径,并判定对输入的变异能否触发新的已知或未知执行路径. 某些情况下,你可能不想重新编译被测代码,或者根本没有被测程序的源代码,因此无法用编译的方式插桩.针对这种情况,AFL fuzz提供了QEMU模式,QEMU即“user emulation”的缩写,相当于是黑盒测试,主要…
CVE-2019-13288 目前漏洞在正式版本已经被修复,本文章仅供学习Fuzz过程,不存在漏洞利用的内容 这是一个pdf查看器的漏洞,可能通过精心制作的文件导致无限递归,由于程序中每个被调用的函数都会在栈上分配一个栈帧,如果一个函数被递归调用太多次,就会导致栈内存耗尽和程序崩溃.因此,远程攻击者可以利用它进行 DoS 攻击. 练习目的 使用检测编译目标应用程序 运行Fuzzer (afl-fuzz) 使用调试器 (GDB) 对崩溃进行分类 环境构建 环境使用Ubuntu 20.04.2 LT…
CVE-2009-3895 首先在NVD找到漏洞描述如下: 大致意思是说:libexif 0.6.18 中的 libexif/exif-entry.c 中的 exif_entry_fix 函数中基于堆的缓冲区溢出允许远程攻击者导致拒绝服务或可能通过无效的 EXIF 图像执行任意代码 接下来找到libexif 0.6.18 ,官方在0.6.19版本修复了此漏洞: CVE-2012-2836 同样在NVD中找到漏洞描述: 大致意思:0.6.21 之前的 EXIF 标签解析库(又名 libexif)中…
最近打 ctf 的时候感觉有点遇到瓶颈,就来 fuzz 这块看看. AFL 全称为 American huzzy loop,是 Fuzzing 最高级的测试工具之一.这个工具对有源码和无源码的二进制程序均可以进行 fuzz 测试. alf 各位自行安装即可,值得注意的是,在我本机 glibc2.31 的环境下,编译 alf 前要对 AFL/llvm_mode/afl-clang-fast.c修改一下,否则会出现报错,只需把部分内容注释掉即可 输入 afl-fuzz 出现下图即安装成功 我们先看对…
模糊测试(fuzz testing)是一类安全性测试的方法.说起安全性测试,大部分人头脑中浮现出的可能是一个标准的“黑客”场景:某个不修边幅.脸色苍白的年轻人,坐在黑暗的房间中,正在熟练地使用各种工具尝试进入某个系统.这种由安全人员“模拟黑客进入系统”的测试方法的确是安全性测试中的一种有效测试手段,名叫“渗透测试”.渗透测试方法完全依靠测试执行者的能力,能力强的“白客”能够发现有价值的安全性漏洞,而不具备很强的攻击能力的测试者就无法有效发现系统中的安全性漏洞.必须承认,渗透测试是一种有效的安全性…
IE.Office 等软件有个共同点,即用文件作为程序的主要输入,但攻击者往往会挑战程序员的假定和假设. 文件格式 Fuzz 就是利用畸形文件测试软件的稳健性,其流程一般包括: * 以一个正常文件作为模板,按规则产生一批畸形文件 * 将畸形文件逐一送往软件进行解析,并监视异常 * 记录错误信息,如寄存器.栈状态 * 进一步分析日志等异常信息,鉴定漏洞和利用性 Blind Fuzz 即盲测,在随机位置插入随机数据产生畸形文件. 现代软件往往使用非常复杂的私有数据结构,如 PPT.word.exce…
Fastify 系列教程: Fastify 系列教程一 (路由和日志) Fastify 系列教程二 (中间件.钩子函数和装饰器) Fastify 系列教程三 (验证.序列化和生命周期) 验证 Fastify 可以验证请求信息,只有符合验证规则的请求才会被处理. JSON Schema 什么是 JSON Schema ,通俗来讲,JSON Schema 就是"描述 JSON 数据格式的一段 JSON". 首先,JSON Schema 也是一个 JSON 字符串,下面来看一个简单的 JSO…