模糊测试XML解析器

时间:2011-05-31 13:02:07

标签: xml xsd fuzzing

我想对一个XML解析器进行模糊测试,并想知道是否有一些合适的模糊器 不仅可以生成随机垃圾,还可以利用现有的架构规范(如XSD或DTD)。

3 个答案:

答案 0 :(得分:7)

在几个月前的搜索过程中,我偶然发现了一些XML模糊器:

  • <击> untidy 。这似乎没有在2007年的最后一次更新中进行积极开发。(Sourceforge上的项目不再可用,后代见archive.org for partial contentpacketstorm下载。它被添加到Peach- 1.0,但不再出现在Peach-3.1 Community Edition 源代码中。
  • Fuzzware。似乎对基于XSD的模糊测试提供了不错的支持。
  • Peach。 Peach模糊器项目将帮助您生成有效的XML文件,但如果您想使用解析器模糊解析器而不是应用程序,则可能没有多大帮助。这当然值得一试,但要预先警告,如果您不了解XML中的各种结构,那么创建数据模型可能是一个繁琐的过程。相关项目HotFuzz也值得一提。
  • JBroFuzz。这是非常积极的发展。我找不到任何描述它的XML(和SOAP)模糊测试功能的教程。您可能会因为它可以单独用作模糊库来帮助您。
  • Codenomicon Defensics for XML。这是一个商业模糊器。 免责声明:我过去曾对Defensics进行过评估,并发现它适用于各种用途。单独的XML解析器可以使用各种技术进行模糊测试 - 您可以提供由模糊器生成的文件,或发出HTTP请求等。请记住,如果您需要模糊应用程序而不是解析器,则必须使用不同的方法; Defensics将帮助您在模糊输入中选择所需的各类输入,以便您可以定位解析器或应用程序,或两者兼而有之。

答案 1 :(得分:3)

这可能是你认为的“垃圾发生器”,但无论如何我会要求你检查它。

来自Radamsa

Oulu University Secure Programming Group是免费的通用模糊器。你可以很容易地对它进行模糊测试。给它一些示例文件,Radamsa为您生成模糊文件。

包含的不同模糊器可以从简单的位翻转到复杂的结构学习和模糊测试。

可以从Google Code找到代码。

答案 2 :(得分:1)

american fuzzy lop可能是个不错的选择。它采用遗传算法,将学习如何在程序中引入新的代码路径,并提出最大化覆盖范围的测试用例。