模糊测试

来源:互联网 发布:微信小说网站源码 编辑:程序博客网 时间:2024/04/25 23:41

模糊测试是一种通过向目标系统提供非预期的输入并监视异常结果来发现软件漏洞的方法。

实现流程:
1. 确定测试的目标
2. 确定输入的向量
3. 生成模糊测试数据
4. 执行模糊测试数据
5. 监视异常
6. 判断发现是否有漏洞可以被利用

模糊测试一般分为两大类:
1. 本地模糊测试
应用于本地系统或者托管的目标系统上,比如命令行模糊测试、文件格式模糊测试、
内核模糊测试。

  1. 远程模糊测试
    远程模糊测试远程测试目标网络。比如:网络协议模糊测试、数据库模糊测试、Web模糊测试。

我主要研究的是网络协议模糊测试:
网络协议模糊测试的对象主要是各类网络产品中的网络协议解析模块,目的是测试其在组装、解析网络协议过程中是否出现漏洞。其思想是通过Socket与被测目标之间进行通信,向被测目标应用发送变异或者包含错误的模糊值,并监视目标应用以发现错误。

目前最常见的网络协议模糊测试实施方案有两种:
1.客户端和服务端模式。自己写的模糊器或者第三方模糊测试器可以分别用来充当客户端和服务端,以此来测试相应的服务端和客户端的安全性。比如Web服务程序。
2.为了测试防火墙、路由器、安全网关等部署在网络中间的设备。模糊器构造的数据被发送到协议服务器的过程中,位于模糊器和协议服务器之间的被测对象起到了重组和解析的作用,一旦重组和解析过程中出错,可能造成被测对象出现异常状态。模糊器中的监控模块用来对被测对象的异常状态进行收集、分析,最终定位漏洞所在。

Unix平台自动化网络协议模糊测试
1.使用SPIKE模糊测试框架
SPIKE用模糊字符串库中的内容迭代模糊变量,达成模糊测试。模糊字符串可以是任何数据类型。
SPIKE包含了一部分预先写好的针对具体协议的模糊测试器,比如:HTTP模糊测试器、Microsoft RPC模糊测试器、X11模糊测试器、Citrix模糊测试器、Sun RPC模糊测试器等。
还有一些通用的模糊测试脚本等。

0 0
原创粉丝点击