通常我们利用模糊测试来发现安全漏洞但实际并不是所有模糊测试发现的问题都能够被漏洞利用那些不能利用的问题也同样需要修改来提升被测程序的健壮性 因此在某些公司模糊测试活动被划分到安全测试范畴在另一些公司模糊测试被划到可靠性测试范畴模糊测试主要的形式首先找到被测目标需要处理的不被信任的输入数据然后通过模糊测试工具对数据进行变异将变异后的数据输入给被测目标进行处理来发现被测目标在处理变异数据的过程中产生的问题那么模糊测试到底能发现那些问题呢在模糊测试过程中主要能观测到的问题类型大概有被测系统重启被测系统无响应某项服务无响应某项服务明显异常等一般在模糊测试的过程中我们都会添加监控器一般通过主流监控器能发现的问题有被测系统ping不同被测系统服务端口无响应被测系统某项服务流程不能正常完成等在测试的过程中或者测试之后我们也可以通过被测系统的日志和debug命令来寻找错误大概的问题有进程重启错误断言等上边说的问题类型都是外在的表现那么引起问题的根因类型大概有那些呢我们可以通过对源代码的分析来寻找根因某些被测语言支持地址消毒技术我们也可以通过在测试的过程中打开地址消毒选项来寻找根因错误代码常见的根因有全局变量栈变异堆变量的读写溢出数组读写越界内存泄露内存多次释放内存变量栈变量等释放后使用变量未初始化使用全局变量多线程错误访问线程死锁等上边发现的问题一般都是通过模糊测试的常用手段来发现我们当然还可以利用模糊测试来发现被测目标的逻辑功能问题发现逻辑问题在模糊测试的过程中一般并不常用因为需要耗费大量的人力想要发现某种逻辑问题首先要将这个逻辑告诉模糊测试工具比如一些系统存在非法的密码能够成功登录的问题比如超长密码想要利用模糊测试发现上述问题首先要告诉模糊测试工具什么样的密码是非法密码并且要能控制在这个测试过程中只变异非法密码很显然我么几乎要为每一种逻辑问题单独定制测试过程通常我们利用模糊测试来发现安全漏洞但实际并不是所有模糊测试发现的问题都能够被漏洞利用那些不能利用的问题也同样需要修改来提升被测程序的健壮性 因此在某些公司模糊测试活动被划分到安全测试范畴在另一些公司模糊测试被划到可靠性测试范畴青草莓科技