大家好,欢迎来到IT知识分享网。
Fuzzer介绍
Fuzzer,即模糊测试,是一种自动化的软件测试技术,涉及向计算机程序提供无效,意外或随机的数据输入。然后监视程序是否存在异常,例如崩溃或潜在的内存泄漏等。
Fuzzer工作三大模块:目标程序、fuzz输入生成和bug反馈捕获。
典型Fuzzer示例:让一只猴子通过随意点击键盘和鼠标,输入意想不到的数据测试应用程序,从而发现bug。
Fuzzer类型 |
基本概念 |
产生原因 |
缺点 |
测试效率 |
特征 |
基于变种(Mutation-based) |
在已知合法输入的基础之上,对输入进行随机变种或依照经验进行变种 |
防止不合法输入被目标程序过滤,增加不必要的测试时间 |
无法穷尽合法输入,无法覆盖所有测试点 |
中 |
依赖已有的合法输入集合 |
基于模板(Generation-based) |
安全人员利用对目标程序或协议的了解,结合自身经验,给出输入数据模板,构造多样化的输入类型 |
产生多样化的输入类型,并减少测试时间 |
执行完设定好的测试内容后立即停止,无法覆盖所有测试点 |
低 |
利用目标系统和自身经验生成多样化输入类型 |
基于反馈演进 (Evolutionary-based) |
实时记录当前目标程序测试覆盖程度,调整fuzzer输入 |
平衡Fuzzer覆盖率和测试时间的需求 |
暂无 |
高 |
根据Fuzzer覆盖率调整输 入 |
Fuzzer暴露错误
Fuzzer是用来证明错误的存在,而不是为了证明错误不存在。运行模糊测试活动数周而未发现错误,并不证明该程序正确。对于尚未执行的输入,程序可能仍然会失败。
u验证静态分析报告
静态程序分析不会实际执行程序,有误报的可能性。模糊测试与动态程序分析可尝试静态程序分析所报告问题的输入,从而对静态分析报告进行验证。
浏览器的安全性
现代的网络浏览器经历了广泛的模糊测试。
lPayload type:Empty/Null
不会改变原有输入,并按照设定的重复次数,多次生成原有输入。
lPayload type:File
从本地上传文件,文件中包含想要替换原有输入的值,可用于暴力激活成功教程。
lPayload type:File Fuzzers
支持任意组合使用通过ZAP 注册的Fuzzer文件。
lPayload type:Json
Json类型的payloads是对原有输入Json字符串进行变种后得到的。
lPayload type:Numbers
Numbers,允许使用自定义增量轻松生成数字序列。在OWASP ZAP中,可通过设置取值区间以及增量大小,生成待测试内容。
lPayload type:Regex
Regex,即正则表达式,通常被用来检索、替换那些符合某个模式(规则)的文本。
lPayload type:String
通过手动输入或粘贴无效、随机的String数据进行Fuzzer测试。对账号密码登录进行模糊测试时,若OWASP ZAP中设置3个手机号、3个密码进行测试,则共有3*3次不同的组合尝试。
lPayload type:Script
在OWASP ZAP中,可在Payload Generator default template.js的基础上编写、保存Payload Generator脚本,生成有效payloads值,用以模糊测试。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/82902.html