
模糊测试简介
基于变异的模糊测试器:通过对已有的数据样本进行变异生成测试用例。 基于生成的模糊测试器:通过对协议或文件格式建模生成输入。 确定测试目标:明确程序的性质、功能、运行环境、语言,以及过去发现的漏洞等信息。 确定输入向量:分析程序可能接收的文件数据、网络数据或环境变量等。 生成模糊测试数据:设计测试数据生成算法,确保测试用例具有可重现性和可重用性。 执行模糊测试:向目标程序发送大量测试数据,监控运行状态。 监视异常:记录使程序产生异常的数据和相关信息。 判定漏洞利用性:分析异常原因,评估漏洞是否可利用。 可重现性:记录测试数据和程序状态,确保其他人能够复现结果。 可重用性:通过模块化开发,避免为每个目标程序重新开发测试器。 代码覆盖:确保测试器能覆盖目标程序的所有代码路径。 异常监视:精准判定程序是否发生异常。 盲目性:测试用例路径重复,效率较低。 冗余度大:随机策略生成的测试用例易重复。 针对性不足:对关联字段关注不够,缺乏针对性。 使数据块间关联性尽可能小。 将具有意义的数据划分为同一数据块。 将连续且固定不变的数据划分为同一数据块。 随机方法:生成大量伪随机数据。 强制性测试:持续打乱数据包各部分内容。 预先生成测试用例:基于规约生成硬编码数据。 遗传算法:优化测试用例生成。 错误注入与模糊启发式:注入故障值测试。
发布日期:2021-05-14 08:36:43
浏览次数:15
分类:精选文章
本文共 1316 字,大约阅读时间需要 4 分钟。
模糊测试是一种通过向程序提供非预期的输入并监控输出中的异常来发现软件中的故障的方法。它在软件安全领域发挥着重要作用,能够帮助开发人员发现隐藏的问题。以下是关于模糊测试的详细内容。
基本原理
模糊测试通过向程序提供非预期的输入来测试其健壮性。测试器分为两大类:
模糊测试流程
模糊测试通常包含以下几个阶段:
基本要求
存在的问题
输入数据的关联分析
应用程序通常对输入数据进行格式检查。通过分析数据对象的结构和依赖关系,构造符合格式要求的测试用例,提高测试成功率。关注以下字段:
- 长度字段
- 偏移字段
- 可能引起逻辑变化的字段
- 可变长度数据
数据块关联模型通过将数据块作为基本元素,分析其关联性,生成畸形测试数据。数据块划分遵循以下原则:
数据块关联方式包括:
- 内关联:同一数据对象内数据块间关联。
- 外关联:多个数据对象间数据块关联。
关联强度:
- 强关联:关联数据块数量大于非关联数据块。
- 弱关联:关联数据块数量小于非关联数据块。
评价标准:
- 有效数据对象效率:能被应用程序接受的数据对象个数与畸形数据对象个数比率。
测试用例集的构建方法
常见方法包括:
- 模糊启发式方法包括:整型值溢出、堆栈溢出、字段分隔符、格式化字符串、扩展字符处理、目录遍历、命令注入等。
测试异常分析
动态分析途径包括:
- program正常输出
- 静态代码插桩
- 动态二进制插桩
- 虚拟机测量
- 调试接口或调试器
模糊测试框架
框架通常包含以下部分:
模糊测试数据生成模块:
- 原始数据生成模块
- 畸形数据生成模块
动态调试模块:捕获异常信息。
执行监控模块:决定何时终止程序。
自动脚本模块:提供复杂监控功能。
异常过滤模块:实时过滤异常结果。
测试结果管理模块:保存异常信息,支持回归测试。
参考资料
由于篇幅限制,未列出具体参考资料。
发表评论
最新留言
哈哈,博客排版真的漂亮呢~
[***.90.31.176]2025年04月18日 01时05分57秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
spring的值注入与组件扫描
2019-03-10
C#跨窗体程序调用方法的具体操作
2019-03-10
抖音发布黄金时间段,抖音上热门最佳时间
2019-03-10
我的图床~
2019-03-10
Thymeleaf sec:authorize 标签不生效
2019-03-11
Iterable与Iterator
2019-03-11
关于WebView当前地址问题的疑惑
2019-03-11
Python机器学习(九十二)Pandas 统计
2019-03-11
SecSolar:为代码“捉虫”,让你能更专心写代码
2019-03-11
链上钱包的博彩雷区
2019-03-11
GRUB2
2019-03-11
微信JS-SDK DEMO页面和示例代码
2019-03-11
GridView自定义删除操作
2019-03-11
一张图搞定RPC框架核心原理
2019-03-11
Scala中的包
2019-03-11
他来了他来了,他带着云栖大会的免费门票走来了
2019-03-11
获取linux 主机cpu类型
2019-03-11
Android Studio updating indices 一直刷新和闪烁
2019-03-11
pwntools编写技巧
2019-03-11