利用XML外部实体注入XXE攻击漏洞

Posted Ots安全

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了利用XML外部实体注入XXE攻击漏洞相关的知识,希望对你有一定的参考价值。

大家好,在这个博客中,我们将了解什么是XXE攻击注入,并展示了一些基本的模型攻击,最后,本文总结了防止XML外部实体漏洞的技术。 

从技术上讲,XML外部实体XXE是一个漏洞,它使黑客能够从应用程序服务器的内部文件系统中查找或查看数据,并可以利用此故障或安全漏洞来评估目标应用程序服务器的内部端口,即服务器端侧面请求伪造(SSRF)攻击。 

每天都有大量的金融客户在使用XML格式器在服务器和浏览器之间传递信息,这是日常工作。很大一部分开发人员都不知道他们是否允许应用程序中使用XML外部实体XXE的问题。

XML格式化程序的用途以及与html有何不同?

XML是一种可扩展的标记语言,用于存储和运送数据,而HTML用于格式化和显示数据。

XML的基本语法


默认XML语法

XXE攻击场景

想象一下,应用程序中有一个搜索框来查找机票预订。客户端在该字段中输入关键字的任何时候,都会将XML格式的数据发送到应用程序服务器。如果我们在Burp Suite中捕获到该请求,则该请求如下图所示:

利用XML外部实体注入XXE攻击漏洞


基本XML格式

检测XXE攻击

通过以下请求,让我们看一下该应用程序是否容易受到XXE攻击。

利用XML外部实体注入XXE攻击漏洞


检测XXE

如上图所示,我们已经有效地区分了XXE攻击端点。现在我们将利用这一点。下图显示了上述请求的格式错误,以便从后端应用程序服务器恢复敏感信息。

利用XML外部实体注入XXE攻击漏洞

检索敏感信息的请求格式错误

有效负载说明


有效负载的详细说明

XML外部实体攻击的类型

泄露机密数据: 攻击者可以检索敏感文件,例如// etc / password等。

拒绝服务: 攻击者可以执行拒绝服务以导致应用程序服务器的可用性。

服务器端请求伪造: 攻击者可以访问外部环境不可用的内部文件系统。

端口扫描: 攻击者可以执行目标应用程序服务器的内部端口扫描。

XXE攻击漏洞的缓解措施:

禁用外部实体。OWASP TOP 10指定了缓解技术,用于禁用和保护应用程序免受XXE攻击。

参考:

https://xmlwriter.net/xml_guide/doctype_declaration.shtml

https://www.w3schools.com/xml/xml_dtd.asp

https://xmlwriter.net/xml_guide/entity_declaration.shtml

https://www.tutorialspoint.com/dtd/dtd_entities.htm

https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/XXE%20Injection

以上是关于利用XML外部实体注入XXE攻击漏洞的主要内容,如果未能解决你的问题,请参考以下文章

漏洞通报|WebSphere Application Server容易受到XML外部实体(XXE)注入漏洞

漏洞报送WebSphere XML外部实体(XXE)注入漏洞

XXE漏洞详解与利用

浅谈XML实体注入漏洞

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

XXE漏洞学习