2009-11-25 33 views
3

在研究xml漏洞时,我来到了强制性解析攻击。 任何人都可以说什么是强制分析攻击(在SOA应用程序中)。攻击如何发生?如何使用java中的xml解析器实现这种攻击?强制性解析攻击

回答

0

由于Web服务需要使用消息和XML文档,因此可以创建XML文档,这可能会在尝试验证和路由消耗系统时耗费系统。一次发送足够的这些文件,消费系统可能会耗尽其所有资源,试图解决消息是否良好并拒绝有效消息。通常你通过构建一个具有深度嵌套结构的消息,甚至是递归嵌套来实现。

您将通过构建这样的文档并将其发送到Web服务来实现它。

+0

攻击可能会损害消耗系统> 多少百分比是有什么方法解决这样的攻击? – Rohit 2009-11-25 09:42:27

+0

取决于系统,以及它对文档做了什么。在解析之前通过XSD验证文档,并保持解析简单。 – blowdart 2009-11-25 10:31:22

-2

通常应用程序使用文档类型定义(DTD)以实现向后兼容。
XML定义允许使用允许非法字符'<','&'的元素“CDATA”。
解析器将解析xml文档中的所有文本。但te cdata部分中的文本将被解析器忽略,这些解析器允许攻击者将可能的系统命令发送到底层系统,并且可以潜入可能具有灾难性的系统命令,他们可以允许攻击者通过一系列命令操纵主机。
它们也可以用于xpath注入攻击等注入攻击。

3

有关此次攻击的示例实施,请参阅“十亿大笑攻击”。

有关此次攻击的全面讨论,如何进行测试以及基本防御,请参阅"Web Security Testing Cookbook" recipe on Malicious XML.(免费Google预览 - 只有3页)。摘录:

“这十亿次笑话攻击滥用了许多XML解析器将XML文档的整个结构保存在内存中的趋势,因为它被解析......足以耗尽易受攻击程序的可用内存。

这里的一些其他资源:

http://www.ibm.com/developerworks/xml/library/x-tipcfsx.html

http://en.wikipedia.org/wiki/Billion_laughs