持续更新模糊测试工具合集,附贴心教程二

哪家治疗白癜风最出名 https://wapyyk.39.net/bj/zhuanke/89ac7.html

模糊测试

模糊测试是一种暴力可靠性测试技术。它采用黑盒测试的思想,通过自动或半自动的生成大量畸形的随机数据来作为应用程序的输入,并监视程序异常,以发现应用程序中可能存在的漏洞或安全缺陷。

模糊测试是一个很重要的流程,有助于发现影响当今复杂应用程序的未知关键错误,有时候甚至能暴露出一些让人“脑洞大开”或者“七窍生烟”的奇葩问题。

本文分为上中下三篇文章,介绍一些现有的运用在不同方向上的优秀fuzzing开源项目,包括针对通信协议Fuzzers、和文件Fuzzers。

01通信协议Fuzzers

针对通信协议的开源的Fuzz工具——BooFuzz

1、什么是BooFuzz

BooFuzz是一个开源的网络协议模糊测试框架,它是由Python语言编写的,可以部署在Windows、Linux和Mac平台。BooFuzz继承自Sulley,它提供了对于网络协议进行模糊测试的规范和功能函数,您可以在此基础上编写针对特定目标的Python脚本,对目标进行量身定制的Fuzz,但这需要开发者对所测试协议的格式有一定了解。BooFuzz并不是直接对服务器程序或客户端程序进行Fuzz的,为了更好地模拟服务器或客户端在真实情境下的工作状态,其模糊测试的对象是会话。BooFuzz可用于IoT设备通信协议的测试。想路由器、HTTPserver和Telnet这些模块通常能够与外界进行交互,从而为攻击者提供了入口。如果这些模块或使用的协议存在漏洞,其很有可能会被直接利用来进行远程攻击,从而带来严重的安全隐患。BooFuzz根据测试人员编写的脚本生成大量变异报文,并发送给目标设备,实时监控目标设备,通过设备服务的可用性来判断设备崩溃情况。与Sulley不同,BooFuzz还具有以下特点:更轻松的安装体验;支持多种协议,比较灵活;内置支持串行模糊测试、以太网和IP层、UDP广播;能够更好地记录测试数据;测试结果CSV导出等。由于BooFuzz继承了Sulley框架,若想了解BooFuzz的框架,应当先了解Sulley的整体架构。Sulley框架如下(来源:FuzzingSucks!Introducingthesulleyfuzzingframework.PedramAminiAaronPortnoy.BlackHatUS):

由图基本可以看到Sulley主要包括四大组件,分别为DataGeneration(数据生成)、Session(会话管理)、Agents(代理)和Utilities(独立单元工具)。其整体的架构和peach、sfuzz相似,是一种比较好的商业化架构。目前BooFuzz主要支持两种底层的通信方式:socket和串口serial。这两种通信方式又可以延申出TCPSocketConnection、UDPSocketConnection、SSLSocketConnection、RawL2SocketConnection、RawL3SocketConnection、SocketConnection和SerialConnection几种通信方式。BooFuzz可以从socket底层开始封装测试,比如可以测试tcp、udp、ftp和


转载请注明:http://www.aierlanlan.com/rzfs/3133.html