XXE在各种环境中漏洞利用的一些技巧

💡 原文中文,约8000字,阅读约需20分钟。
📝

内容提要

本文探讨了Java、PHP和.NET环境中的XXE漏洞利用技巧,涵盖不同协议的支持与限制,重点介绍了如何通过特定协议读取文件、执行命令及绕过安全防护。同时分析了不同JDK版本对安全性的影响,提醒在实际应用中需谨慎使用相关技术。

🎯

关键要点

  • 不同平台支持的协议不同,jdk1.8开始不再支持gopher协议。
  • Java环境下XXE漏洞利用技巧包括netdoc和file协议的相似性。
  • file协议可以列目录,使用CDATA读取特殊字符文本数据。
  • 高版本JDK可通过utf-16编码绕过协议限制。
  • 利用jar协议读取压缩包内文件。
  • 使用参数实体嵌套绕过基础防护。
  • FTP协议可外带含特殊字符的数据,Java在这方面受到限制。
  • 不同JDK版本对安全性的影响,较高版本禁用部分危险协议。
  • 特殊文件读取方法包括获取环境变量和MAC地址。
  • 结合JAXB反序列化实现RCE。
  • PHP环境下XXE漏洞利用技巧包括php://filter协议和expect://协议。
  • 解析器差异影响PHP的外部实体解析。
  • 使用UTF-7编码绕过关键词过滤。
  • 通过HTTP/FTP协议外传数据。
  • 在.NET环境下,XmlDocument配置不当会导致外部解析。
  • 通过svg文件格式绕过内容检查。
  • 无回显情况下可利用盲注读取文件。
  • 存在堆栈报错时可利用特定DTD进行攻击。
  • Windows和Linux系统中常用的DTD文件路径不同。
  • XXE漏洞利用需遵循法律法规,使用需谨慎。

延伸问答

XXE漏洞在Java环境中如何利用?

在Java环境中,可以通过file协议列目录、使用CDATA读取特殊字符文本、利用jar协议读取压缩包内文件等方式进行XXE漏洞利用。

不同JDK版本对XXE漏洞的影响是什么?

不同JDK版本对安全性的影响较大,高版本JDK禁用部分危险协议,如jdk1.8开始不再支持gopher协议,且高版本可通过utf-16编码绕过协议限制。

PHP环境中如何利用XXE漏洞?

在PHP环境中,可以使用php://filter协议读取文件、expect://协议执行系统命令,以及通过HTTP/FTP协议外传数据等方式进行XXE漏洞利用。

XXE漏洞利用时需要注意哪些法律法规?

XXE漏洞利用需遵循法律法规,使用时应谨慎,确保不违反相关法律。

在.NET环境中,如何避免XXE漏洞?

在.NET环境中,应避免不安全的配置,如XmlDocument的XmlResolver设置不当可能导致外部解析,从而引发XXE漏洞。

XXE漏洞利用中的盲注攻击是如何实现的?

盲注攻击可以通过特定DTD进行,利用无回显情况下的请求来读取文件内容,或在堆栈报错时触发特定的DTD进行攻击。

➡️

继续阅读