模糊测试基础概念
什么是模糊测试?
我们先来了解下什么是模糊测试?
- 百度百科是如此解释:模糊测试(Fuzzing),是一种通过向目标系统提供非预期的输入并监视异常结果来发现软件漏洞的方法
- 《测试之美》一书如下解释:模糊测试是通过对输入数据进行随机修改和破坏来测试程序的方法。
- 虽然这一技术已经存在至少20多年、但由于安全测试的日益重视和模糊测试专用工具的增多,它在最近几年变得更加盛行。一个程序的模糊化可以是手工或者自动的、但伴以自动化和测试日志、这个技术就会最有效果。
- 为什么要模糊测试?就如模糊测试所暗示的、模糊测试方法很简单。但它为测试人员和开发人员在开发软件时所面临的棘手问题提供多种优美的解决方案。
比较有效的模糊测试,并不是用大量纯随机数据直接来测试,而是对已知有效数据、故意错误数据和随机数据的联合调试。使用已知有效数据的目的是跳过不感兴趣的代码片段,或者说是为了防止程序在抵达一个欠缺的代码块前出现拒绝信息。使用故意错误数据的目的是利用已知或我怀疑将成为代码中缺陷的情况。最后,使用随机数据的目的就是看看会发生什么。
模糊测试适用于有大量输入数据的办公软件、编辑器、网络协议等、在对待这类软件时模糊测试可能更有效果。
- 模糊测试工具介绍:
1、 Spike
3、 Ircfuzz
4、 Dhcpfuzz
5、 Infigo
6、 FTPstress
7、 zzuf
以上工具大部分为开源工具都可以在网上下载到源代码。
- 模糊测试书籍1、模糊测试强制性安全漏洞发掘:这本书是目前市面上第一本专门介绍模糊测试的书籍、建议大家想了解模糊测试的朋友可以购买学习下。