- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我们在我们的 asp.net asmx 网络服务中发现了一个 XML 外部实体漏洞。
我们正在使用 burp 套件测试 asp.net .asmx 网络服务,以检查 XML 外部实体处理漏洞。看: https://cheatsheetseries.owasp.org/cheatsheets/XML_External_Entity_Prevention_Cheat_Sheet.html#net
我们看到,当 DTD 包含在请求中时,如下所示:
<!DOCTYPE soapenv:envelope PUBLIC "-//B/A/EN" "http://1234565.cigitalcollaborator.com">
DNS 请求被发送到 cigitalcollaborator.com。这表明 asmx 网络服务正在处理请求中的 DTD。
我们使用的是 .net 版本 4.5.2。
根据此链接,.net 4.5.2 及更高版本应隐式阻止 XXE 漏洞: https://www.owasp.org/index.php/XML_External_Entity_(XXE)_Prevention_Cheat_Sheet#.NET_4.5.2_and_later
但这不是...我们进行 DNS 查找。
底层 .net 框架正在处理这个 asmx 网络服务的 XML 反序列化/序列化,因此我们没有代码可以真正修复这里。我们不能正确地改变行为,因为它在底层框架中的某个地方?
我们如何为我们的 ASMX 网络服务修复这个 XXE 漏洞?
谢谢
乔恩·鲍
最佳答案
我认为在这里考虑两点很重要:
首先 - 设计用于使用各种不同技术的 Web 应用程序的自动扫描并不能证明存在漏洞。 DNS 查找与完全处理相关实体不同。如果对有问题的 url 发出后续请求,并且处理了来自该 url 的数据,然后你就有了漏洞。您可以使用 Fiddler 等代理配置您的应用程序来验证是否发出了此类请求。
其次,.NET 自 4.5.2 以来一直是安全的默认。这与保证安全不同。如果应用程序需要 DTD 处理,可以在设置中启用它:
var xmlReaderSettings = new XmlReaderSettings();
xmlReaderSettings.DtdProcessing = DtdProcessing.Parse;
var xmlReader = XmlReader.Create(new StringReader("EvilXml", xmlReaderSettings));
或者
var xmlTextReader = new XmlTextReader(new StringReader("EvilXml");
xmlTextReader..DtdProcessing = DtdProcessing.Parse;
并使用 XDocument 解析器实现流程 DTD
var xmlDocument = new XmlDocument();
// Implementations of XmlResolver are probably unsafe
xmlDocument.XmlResolver = new MyCustomResolver();
// xmlDocument.XmlResolver = null is safe - should be the default from 4.5.2
xmlDocument.LoadXml("EvilXml");
我可能会在源代码中搜索两个相关的文本字符串 "DtdProcessing.Parse"
和 "XmlResolver"
以排除这种情况。
关于c# - asp.net .asmx web 服务 ishow XXE 漏洞 - 外部 DNS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51428514/
XXE安全威胁目前没有。在 OWASP 十大 Web 应用程序安全威胁列表中排名第 4,因此我希望 Java 标准 XML 库能够防止此类攻击。但是,当我以 Sonar 推荐的方式使用 Validat
我有格式如下的excel数据单元格: 需要在同一个单元格中同时包含数字和括号内的数字。 我希望再创建四个单元格,其中包含每个单元格对非支持数字总和的百分比贡献。 即第一个新单元格中的总和需要为 3e-
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 去年关闭。 Improve this
为了防止 XXE 攻击,我已按照 Java DocumentBuilderFactory 的建议禁用了以下功能 - https://www.owasp.org/index.php/XML_Extern
我在 fortify 报告中收到第 4 行的 XML 外部实体注入(inject)安全警告。不知道如何解决它。我对 SOAP、JAXB 和 Marshaller 还很陌生。 1 private
我在 veracode 报告中得到了下一个发现:XML 外部实体引用(“XXE”)的不当限制(CWE ID 611) 引用下面的下一个代码 ... DocumentBuilderFactory d
是否可以对 Javascript 进行 XXE 攻击(或者至少有意义)?这就是,当尝试用JS解析XML时,它是否处理外部实体?但是这个解析是在客户端执行的,对吗?它会对服务器造成什么危害? 我们如何防
这是关于在使用 JAXB API 时避免 XXE 攻击。据我了解,使用 JAXB 时,可以覆盖默认解析机制,并且可以使用备用 SAX 解析器并设置实体功能以避免 XXE 攻击。但想了解默认解析器到底是
我们使用 javax.xml.parsers.SAXParserFactory 读取我们的 XML 模板文件。如果我们正在读取的 XML 文件中存在 XXE,是否有办法关闭对它的处理? 谢谢 - 戴夫
我的 Veracode 报告中有下一个发现:XML 外部实体引用 ('XXE') (CWE ID 611) 的不当限制 引用下面的下一个代码 ... DocumentBuilderFactory
我有几个 SonarQube 漏洞,其中一个引起了我的注意。 DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); tr
想知道如何使用 Xstream API 修复 Xml EXternal Entity (XXE) 漏洞。 就像我们能做的 // This is the PRIMARY defense. If DTDs
要求:当我将以下请求传递给我的应用程序时, 1)如何对这种存在风险的输入xml进行XML验证 2) 如何在 libxml2 中禁用 XXE,即不应该解析 ENTITY 字段 ]> LINE_ITE
用 Java 解析 XML 变得非常简单。大多数代码最终会调用 DocumentBuilderFactory.newInstance(),它返回易受 XXE kind of attacks by de
作为最后的手段,我在这里发布了一个问题,我浏览了网页并进行了多次尝试但没有成功。 复制 XXE 攻击是我试图做的,以防止它们,但我似乎无法理解 PHP 处理 XML 实体的方式。作为记录,我在 Ubu
最近,我们对我们的代码进行了安全审计,其中一个问题是我们的应用程序受到了 Xml eXternal Entity (XXE) 攻击。 基本上,该应用程序是一个计算器,通过 Web 服务接收 XML 格
我们要处理的XML消息的格式是这样的: .... 收到异常: javax.xml.bind.UnmarshalException: unexpected el
这些代码行导致 xxe 漏洞出现在 Checkmarx 报告中: InputStream is = connection.getInputStream(); XMLInputFactory facto
我使用非验证读取来显示或处理不受信任的 XML 文档,我不需要支持内部实体,但我确实希望能够处理,即使显示了 DOCTYPE。 随着disallow DOCTYPE-decl feature SAX
我们对代码进行了安全审核,他们提到我们的代码容易受到外部实体 (XXE) 攻击。我正在使用以下代码 - string OurOutputXMLString= "00000Logince_useridc
我是一名优秀的程序员,十分优秀!