在计算机领域,Fuzz Testing是一种测试方法,它构造一系列不规则的“坏”数据插入应用程序,以确定程序是否有异常来检测潜在的错误。在信息安全领域,有些人试图引入模糊测试思想来利用安全漏洞,效果很好。 JSRC 安全课堂第117号,邀请dogboy作为讲师分享一些关于模糊的简单想法。与此同时,我要感谢你们所有人的精彩讨论。
京安小妹:模糊的优点和缺点是什么?
dogboy : 优点: 1该技术简单易操作,节省了大量人力。程序运行后,只需要分析结果。 2发现漏洞很快,误报率相对较低 缺点: 1黑盒测试的所有缺点 2如果它是一个复杂的协议,那么构建测试用例周期很长,不通用 3无法测试未记录的接口
静安小梅:正常情况下模糊的内容是什么?
dogboy : 文件格式Fuzz 在软件漏洞的挖掘中比较常见,似乎ImageMagick的许多崩溃都是基于这样的模糊 - 图片格式 - 文件格式 - 还有很多 协议模糊 - RPC协议 - Http协议(参数=值,路径) - 还有很多
静安小梅:漏洞利用漏洞时有什么用? Dogboy
当我们使用sql注入waf时,我们大多数人将使用模糊技术,依靠强大的字典来绕过waf关键字检测。 https://xz.aliyun.com/t/2418 或者像参数名称一样模糊参数名称,寻找jsonp劫持,过度授权或rce https://gh0st.cn/archives/2018-07-25/1 密钥使用添加,删除和更改参数的模糊方法。尝试挖掘无法直接发现的漏洞(通常适用于挖掘逻辑类漏洞)。 而且我只能模糊网址跳跃的参数,挖一个挖掘的网址跳跃
静安小梅:模糊最重要的是什么? Dogboy
我认为字典的第一个键,字典应该足够大,以涵盖所有可能性。 关于字典: 1.收集网站本身以传递参数和值
2.收集和组织常用词典 3.收集和组织词典的规则
静安小梅:有什么更好的模糊工具?
Dogboy 面向Web的Fuzz工具 https://github.com/xmendez/wfuzz https://github.com/maK-/parameth 可以在请求参数类的模糊测试中使用,上面列出的项目的所有功能都依赖于字典和字典规则来完成测试。 HTTP Fuzzer https://fuzzer.test404.com/?/article/5 优点是你可以拖放插件,不需要编写脚本,而且它是图形的,windows很容易使用,适合懒惰使用时23333 XssSniper插件 chrome的插件,由360的0kee团队编写的插件,值得深思的是我依靠这个插件来模拟360主站的xss。
总结一下 模糊测试只是自动发现漏洞的重要手段,就像自动化漏洞扫描程序一样。我们不能完全依赖它。在测试过程中,手工分析结果和合理改进字典不仅可以提高模糊测试的效率,还可以帮助我们探索更多潜在的设计缺陷。毕竟,机器毕竟是“硬”,人们是“灵活的”。 Dogboy 互动问答环节: 1. fuzz是规则还是累积字典? 规则和累积词典 字典可以很好地组织这个项目 https://github.com/fuzzdb-project/fuzzdb 猪人的字典 https://fuzz.wget.lc/Fuzz/ 这是JSRC安全小班的结论。如需更多内容,请期待下一个安全小班。如果您还想在安全的小课堂内容中出现某些内容,请留言告诉我们。