目录
1.简介
模糊测试(Fuzz Testing)的理论和应用目前都已成熟,已有各种Fuzz安全测试的框架、工具和书籍问世。在信息安全领域,很多安全测试都引入了Fuzz Testing思想进行安全漏洞挖掘
模糊测试是一种介于完全的手工渗透测试与完全的自动化测试之间的安全性黑盒测试类型。它充分利用了机器的能力:随机生成和发送数据,同时尝试将安全专家在安全性方面的经验引入。从执行过程的角度来说,模糊测试的执行过程非常简单,大致可以分为如下5个阶段。
2.测试步骤
(1)确定输入向量
几乎所有可以被攻击者利用的安全漏洞都是因为应用程序没有对用户输入进行安全的边界校验,或者对非法输入有过滤但并不完全造成的。能否实施有效的模糊测试,关键在于能否准确地找到输入向量。我们将确定输入向量的原则定义为:一切向测试目标程序输入的数据都应该被认为是危险的,所有输入向量都可能是存在潜在安全风险的模糊测试变量。
(2)生成模糊测试数据
识别所有的输入向量之后,就可以依据输入向量产生模糊测试数据。产生模糊测试数据的方式主要有两种:一种是通过预先确定的值,使用基于已存在的数据通过算法将其变异,生成新的测试数据;