FUZZ测试方法介绍

FUZZ测试方法介绍 - tester的日志 - 网易博客

FUZZ测试方法介绍

2011-07-18 14:43:52|  分类: 测试思想 |  标签:  |字号 大中小 订阅

Fuzz这个名词来自于Professor Barton Miller。在1989年一个风雨交加的夜晚,他登陆一台自己的主机,不知道怎么回事,信号通过猫传到主机上,雷电一闪,把里面的高位变低位,低位至高位了,结果到了主机以后改变了。他突发奇想,把这种方式作为一种测试的方式来做。

1、到底什么是Fuzz Test?

Generally speaking fuzz is a brute force method which used to break software,就是用大量的测试用例一个一个试,尽可能多的找出有可能出问题的地方。

2、Fuzz怎么工作?

现在有无数有名的Fuzz工具,有很多人很多还在写,一般包括四个部分。

(1)Generate lots of malformed data as test cases,要生成大量的测试用例。这个测试用力是malformed的,一个软件首先要找到输入点,然后把数据丢进去,这个数据有可能是一个文件,有可能是一个数据包,有可能是测试表里面的一个项,有可能是临时文件里面的一个东西,总之是一种数据,要定义malformed这种非正常的数据。

(2)Drop the test cases into product,把它丢进去,看这个产品怎么反应。

(3)Monitor and log any crash/exception triggered by malicious input.

(4)Review the test log, investigated deeply.

3、Fuzz在各个平台上的一个测试情况

Linux平台上的报告

Mac上的一些应用测试情况

数据说明一切,这些数据说明了fuzz在测试中的价值。

FUZZ应用

我在函数库中增加了一个fuzz工具,是用来fuzz http接口的。采用的是比较好用wfuzz

http://www.edge-security.com/wfuzz.php

加载函数库后,直接使用wfuzz命令即可。

程序运行,依赖pycurl与libcurl,如果提示有问题,请安装这两个库解决。

Fuzz isearch的请求

Fuzz isearch的关键词查询。可以支持词典穷举。可以特殊字符写成文件的形式可以加进来

Fuzz的自定义改进

可以增加对结果的解析

Fuzz思想的延伸

Fuzz其实就是一个缩微版的自动化测试框架。

只不过他的测试数据,支持随机与特定的规则。Fuzz的判断依据,更简单而已。只是简单的异常情况。

这点上,我们可以进行充分的扩充,比如支持doc格式的判断,提取里面的某些字段判断等。

我们也可以在此理论基础上去合理的使用我们的框架。比如UI自动化一样,如果pwatir写出来的代码,支持query从文件中读取,那么就可以随意的构造Query了。

如果gtest写出的单元测试框架,可以支持从文件,或者数据库读取TC数据。那么fuzz也很容易实现。

同样日志对比脚本,也可以实现fuzz。

此次介绍的是fuzz http协议。当然fuzz不仅支持这些,还支持其他的协议,以及执行方式。

比如fuzz c++代码来生成自动化的单元测试。

另外,也并不是任何地方都适合fuzz测试,需要根据场景选择。比如算法组的某些算法,为了提升效率,是会牺牲一些边缘的异常处理的。

如果是对外的Query或者接口,是有必要做的。比如isearch的查询,seachweb,p4p的接口。

其他fuzz工具

推荐一个可以方便hack的工具,ruby编写,可以很容易开发自定义的fuzz。非常好用。

当然也可以使用上面介绍的wfuzz,采用python编写的。

http://rfuzz.rubyforge.org/index.html

网上也有N多的fuzz工具集合与说明,大家可以自己Google

其他文章

http://www.aqualab.cs.northwestern.edu/HotWeb08/papers/Hammersland-FTW.pdf

http://www.edge-security.com/wfuzz.php

http://huaidan.org/archives/3261.html

posted on 2013-01-24 14:32 lexus 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/lexus/archive/2013/01/24/2874920.html

FUZZ测试方法介绍相关推荐

  1. Fuzz:Fuzz测试方法介绍

    文章目录 参考 通俗定义 组成结构 1. 原始数据定义模块: 2. 数据变异模块 3. 测试逻辑 4. 错误监测与日志模块 测试流程 准备好随机或者半随机方式生成的数据 将准备好的数据导入被测试的系统 ...

  2. 测试两个主机之间的连通性_常用的光缆4种测试方法介绍

    通常我们在具体的工程中对光缆的测试方法有:连通性测试.端-端损耗测试.收发功率测试和反射损耗测试4种,现简述如下. 1) 连通性测试:连通性测试是最简单的测试方法,只需在光纤一端导入光线(比如红光笔) ...

  3. 漏洞挖掘利器-Fuzz技术介绍

    模糊测试的定义 模糊测试定义为"通过向应用提供非预期的输入并监控输出中的异常来发现软件中的故障(faults)的方法". 典型而言,模糊测试利用自动化或是半自动化的方法重复地向应用 ...

  4. cdm软件怎么测试硬盘,测试方法介绍、CDM性能对比测试

    评测平台介绍与说明:硬件平台 CPUIntel Core i7 3770K 主板ZZ7.B75主板 内存DDR3-1600 8G*2(9-9-9-24) 硬盘主盘:三星830系列256G 测试盘:浦科 ...

  5. 光缆常用的设备测试方法介绍

           一. 常用的测试设备 1. 光源 一个光源可以是一台设备,或者是一个LED,或者是一个激光器,常用的是激光笔. 2. 功率计 功率计是典型的光纤技术人员的标准测试仪,是常用的工具,主要的 ...

  6. 射频无源器件测试方法介绍

    射频器件是无线通讯设备必备的基础性零部件,是无线连接的核心基础,在我国无线通讯事业发展过程中起着举足轻重的作用,被广泛应用于雷达通信.广播通信.手机通信和基站通信等领域. 为保证通信的可靠,射频器件在 ...

  7. 提高网速软件_网速的定义及测试方法介绍

    温馨提示:请您在阅读本文之前,点击文章上方的"关注",以后您就可以免费收到智慧网络2333每天推送的网络.宽带等内容了.谢谢您的关注与转发! 虽然我们每天都在上网,每天都与网络打交 ...

  8. 什么是热阻?导热材料中热阻的定义及测试方法介绍

    在我们这个电子导热材料行业中,很多客户找我们咨询产品时都会询问:你们这个材料导热系数是多少?但是有一部分工程师咨询时会问到材料的热阻,相信有的人表示不理解,我是来咨询导热材料的,为什么要问热阻呢? 在 ...

  9. 什么是导热系数?导热材料导热系数及测试方法介绍

    不论是新能源汽车行业,还是电子电工,或是led行业,导热材料应用比较普遍.在热管理学中,导热系数是反映材料导热性能的一项重要参数,也是使用者最为关注的技术指标. 导热系数(又称热导率)是表征材料导热能 ...

最新文章

  1. Gson源码解析和它的设计模式
  2. Linux Shell 只列出目录的方法
  3. 移动端web自适应适配布局解决方案
  4. MyBatis 分页插件 PageHelper
  5. ubuntu安装完mysql无法登录_Ubuntu安装mysql8后无法登陆怎么解决
  6. jggrid使用multiselect时修改默认排序
  7. openpyxl 列 插入_openpyxl 基本使用
  8. 饮冰三年-人工智能-Python-16Python基础之迭代器、生成器、装饰器
  9. --从输入URL到页面展示的详细过程
  10. 图像处理基本算法-直方图均衡
  11. 数据库原理及应用(索引为什么快,数据在磁盘上如何存储)
  12. [AST实战]从零开始写一个wepy转VUE的工具
  13. 医疗保健行业未来发展的5大趋势预测
  14. 原创力文档怎么免费下载_谁说下载文档需要下载券?老司机分享的良心工具,全网文档免费下...
  15. 微信小程序开发者工具及官网
  16. 【180629】VC++ QQ头像连连看游戏源码
  17. python点击按钮后跳到另一个页面_js点击button按钮跳转到另一个新页面
  18. Spring-Boot实现HTTP大文件断点续传分片下载-大视频分段渐进式播放
  19. Tomcat修改默认主页
  20. 原来连续查询mysql天数的sql语句这么简单呀

热门文章

  1. 11 0在c语言为多少,C语言 11.0
  2. CSDN-Mardown-改变文本的字体、大小、颜色、背景色、对齐
  3. Vagrant 搭建虚拟机环境
  4. 十进制转为任意进制,发糖果
  5. 一个小故事带你了解大O表示法
  6. SVG路径描边动画效果的实现
  7. 1032 挖掘机技术哪家强(JAVA)
  8. 怎么自学python,大概要多久?
  9. CSS 中 border: 1px solid rgba(0, 0, 0, 0.1); 是什么意思?
  10. EclipsePHP Studio 使用设置笔记