我想对 XML 解析器进行模糊测试,并想知道是否有一些合适的模糊器。
不仅可以生成随机垃圾,而且可以利用现有的模式规范,如 XSD 或 DTD,这将是一件好事。
问问题
6094 次
3 回答
7
以下是我在几个月前的搜索中偶然发现的一些 XML 模糊器:
不整洁。这似乎没有在积极开发中,最后一次更新是在 2007 年。(Sourceforge 上不再提供该项目,后代参见archive.org 获取部分内容,以及packetstorm下载。它已添加到 Peach-1.0,但根本不再出现在 Peach-3.1社区版源中)。- 模糊软件。似乎对基于 XSD 的模糊测试有很好的支持。
- 桃子。Peach fuzzer 项目将帮助您生成有效的 XML 文件,但如果您想模糊解析器而不是使用解析器的应用程序,可能不会有太大帮助。这当然值得一试,但请注意,如果您不了解 XML 中的各种结构,创建数据模型可能是一个繁琐的过程。相关项目HotFuzz在这里也值得一提。
- JBroFuzz。这是相当积极的发展。我找不到任何描述它的 XML(和 SOAP)模糊测试功能的教程。它可以单独用作模糊测试库这一事实可能会对您有所帮助。
- XML 的 Codenomicon 防御。这是一个商业模糊器。免责声明:我过去曾评估过 Defensics,发现它适用于各种目的。单独的 XML 解析器可以使用各种技术进行模糊测试 - 您可以将由模糊器生成的文件提供给它,或发出 HTTP 请求等。请记住,如果您需要对应用程序而不是解析器进行模糊测试,则必须使用不同的方法; Defensics 将帮助选择您想要在模糊输入中的各种输入类别,以便您可以针对您的解析器或您的应用程序或两者兼而有之。
于 2011-06-09T07:00:48.547 回答
3
这可能是您认为的“垃圾生成器”,但无论如何我都会请您检查一下。
来自Oulu University Secure Programming Group的Radamsa是免费的通用 fuzzer。你可以很容易地对它进行模糊处理。给它一些示例文件,Radamsa 会为您生成模糊文件。
包含的不同模糊器可以从简单的位翻转到复杂的结构学习和模糊测试。
代码可以从谷歌代码中找到。
于 2011-06-11T10:14:20.933 回答
1
美国毛茸茸的垂耳兔在这里可能是个不错的选择。它采用了一种遗传算法,该算法将学习如何在程序中引入新的代码路径,并提出最大化覆盖率的测试用例。
于 2015-10-13T21:56:16.830 回答