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

前言 本文以 libfuzzer-workshop 为基础 介绍 libFuzzer 的使用. libFuzzer简介 libFuzzer 是一个in-process,coverage-guided,evolutionary 的 fuzz 引擎,是 LLVM 项目的一部分. libFuzzer 和 要被测试的库 链接在一起,通过一个模糊测试入口点(目标函数),把测试用例喂给要被测试的库. fuzzer会跟踪哪些代码区域已经测试过,然后在输入数据的语料库上进行变异,来使代码覆盖率最大化.代码覆盖率…
afl 实战 前言 像 libFuzzer, afl 这类 fuzz 对于 从文件 或者 标准输入 获取输入的程序都能进行很好的 fuzz, 但是对于基于网络的程序来说就不是那么方便了. 这篇文章介绍用 afl 来 fuzz 网络应用程序. 介绍 afl 是一个非常厉害的 fuzz,最近几年炒的火热.它是基于代码插桩来生成测试用例,这样生成的样本就比较的好,而且针对 linux 做了许多性能优化使得速度也非常快. 使用 afl 的常规步骤 如果有源码,用 afl-gcc 或者 afl-clang…
序言 Fuzzing101系列包含针对10 个真实目标的10个练习,在练习中一步一步学习Fuzzing技术的知识. 模糊测试(Fuzzing/Fuzz)是一种自动化软件测试技术,它基于为程序提供随机或变异的输入值并监视它的异常和崩溃. AFL.libFuzzer 和 HonggFuzz 是现实世界应用中最多的三个模糊器,这三个都是覆盖引导的进化模糊器(Coverage-guided evolutionary fuzzer).其中 进化(evolutionary)是一种受进化算法启发的元启发式方法…
模糊测试(fuzz testing)是一类安全性测试的方法.说起安全性测试,大部分人头脑中浮现出的可能是一个标准的“黑客”场景:某个不修边幅.脸色苍白的年轻人,坐在黑暗的房间中,正在熟练地使用各种工具尝试进入某个系统.这种由安全人员“模拟黑客进入系统”的测试方法的确是安全性测试中的一种有效测试手段,名叫“渗透测试”.渗透测试方法完全依靠测试执行者的能力,能力强的“白客”能够发现有价值的安全性漏洞,而不具备很强的攻击能力的测试者就无法有效发现系统中的安全性漏洞.必须承认,渗透测试是一种有效的安全性…
IE.Office 等软件有个共同点,即用文件作为程序的主要输入,但攻击者往往会挑战程序员的假定和假设. 文件格式 Fuzz 就是利用畸形文件测试软件的稳健性,其流程一般包括: * 以一个正常文件作为模板,按规则产生一批畸形文件 * 将畸形文件逐一送往软件进行解析,并监视异常 * 记录错误信息,如寄存器.栈状态 * 进一步分析日志等异常信息,鉴定漏洞和利用性 Blind Fuzz 即盲测,在随机位置插入随机数据产生畸形文件. 现代软件往往使用非常复杂的私有数据结构,如 PPT.word.exce…
写在篇头: 随着国内的互联网产业日臻成熟,软件质量的要求越来越高,对测试团队和测试工程师提出了种种新的挑战. 传统的行业现象是90%的测试工程师被堆积在基本的功能.系统.黑盒测试,但是随着软件测试整体行业的技术积累和大环境,市场对于测试工程师的要求越来越全栈化,技术的突破是测试工程师的必修课. 安全测试就是测试工程师的高阶技能之一,不过安全性测试领域水非常深,对于普通测试工程师而言可能并不容易上手. 所以笔者准备写这个系列文章,做一个安全性测试入门级攻略.文章会采用DVWA项目,就其提供的几大模…
Honggfuzz实战 前言 本文介绍 libfuzzer 和 afl 联合增强版 honggfuzz .同时介绍利用 honggfuzz 来 fuzz 网络应用服务. 介绍 honggfuzz 也是 google 开发的一款 fuzz . 其设计思路 和 libfuzzer 和 afl 类似 ,感觉就是 libfuzzer + afl 的 增强版. 编译 git clone https://github.com/google/honggfuzz.git cd honggfuzz make ho…
IE安全系列之--RES Protocol res Protocol用于从一个文件里面提取指定资源.语法为:res://sFile[/sType]/sID 各Token含义: sfile:百分号编码.包含资源的文件路径. sType:可选的,字符串或者数字,表明资源类型.可以是任意亿一个FindResource可以识别的预定义类型.如果指定了数字类型的值,则需要跟随一个#字符.未指定时默认RT_HTML或RT_FILE. sID:字符或数字类型.资源标识符.如果指定了数字值,需要跟随一个#. 具…
转:https://github.com/google/fuzzer-test-suite/blob/master/tutorial/libFuzzerTutorial.md 本文在Ubuntu16下测试成功.由于windows配置复杂,暂时未尝试.目前应用于开源. Introduction In this tutorial you will learn how to use libFuzzer -- a coverage-guided in-process fuzzing engine. Yo…
前言 本文主要介绍如果使用 qemu 和 unicorn 来搜集程序执行的覆盖率信息以及如何把搜集到的覆盖率信息反馈到 fuzzer 中辅助 fuzz 的进行. AFL Fork Server 为了后面介绍 afl 的 qemu 模式和 unicorn 模式, 首先大概讲一下 afl 的 fork server 的实现机制.afl 与 fork server 的通信流程如图所示 首先 afl-fuzz 调用 init_forkserver 函数 fork 出一个新进程作为 fork server…