HP fortify XML 外部实体注入

Posted

技术标签:

【中文标题】HP fortify XML 外部实体注入【英文标题】:HP fortify XML External Entity Injection 【发布时间】:2017-06-26 18:47:52 【问题描述】:

Hp fortify 在下面的代码中向我展示了一个 XML 外部实体注入:

StringBuilder sb = new StringBuilder();
StringWriter stringWriter = new StringWriter(sb);
xmlSerializer.Serialize(stringWriter, o);
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml(stringWriter.ToString());  //bad code
result = xmlDoc.ChildNodes[1].OuterXml;

在上面它显示了以下行中的漏洞xmlDoc.LoadXml(stringWriter.ToString());

我该如何解决这种情况?

【问题讨论】:

【参考方案1】:

XmlDocument 对象中有一个 XmlResolver 对象,在 4.5.2 之前的版本中需要将其设置为 null。 在 4.5.2 及更高版本中,此 XmlResolver 默认设置为 null。

【讨论】:

【参考方案2】:

使用 xmlDoc.XmlResolver = null;在加载 xml 之前。

【讨论】:

以上是关于HP fortify XML 外部实体注入的主要内容,如果未能解决你的问题,请参考以下文章

Pikachu-XXE(xml外部实体注入漏洞)

文库 | XML外部实体注入总结(XXE)

XXE攻防——XML外部实体注入

漏洞通告WebLogic XML外部实体注入漏洞

文库 | 探索XML外部实体注入(XXE)

XXE (XML External Entity Injection) :XML外部实体注入