XML外部实体(XXE)

摘要:
A4-XML外部实体如果攻击者可以上传XML文档或者在XML文档中添加恶意内容,通过易受攻击的代码、依赖项或集成,他们就能够攻击含有缺陷的XML处理器。XXE影响-XXE缺陷可用于提取数据、执行远程服务器请求、扫描内部系统、执行拒绝服务攻击和其他攻击。XML是标准通用标记语言的子集,非常适合Web传输。XML提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据。在解析XML的过程中如果未过滤用户的输入则可能引起注入问题。
A4-XML外部实体(XXE)
  • 如果攻击者可以上传XML文档或者在XML文档中添加恶意内容,通过易受攻击的代码、依赖项或集成,他们就能够攻击含有缺陷的XML处理器。
  • XXE影响-XXE缺陷可用于提取数据、执行远程服务器请求、扫描内部系统、执行拒绝服务攻击和其他攻击。

XML

  • 可扩展标记语言(Extensible Markup Language,XML),用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。
  • XML是标准通用标记语言(SGML)的子集,非常适合Web传输。XML提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据。
  • 在解析XML的过程中如果未过滤用户的输入则可能引起注入问题。

XML文档格式

XML外部实体(XXE)第1张

XML实体定义

1.内部实体声明

XML外部实体(XXE)第2张

2.外部实体声明

XML外部实体(XXE)第3张

XXE外部实体注入:通过system引入外部定义,可以泄露敏感信息或探测内网等

XML外部实体(XXE)第4张

XML外部实体(XXE)第5张

XML外部实体(XXE)案例

XML外部实体(XXE)第6张

如何防御xxe攻击:

  • 方案一、使用开发语言提供的禁用外部实体的方法

PHP
libxml_disable_entity_loader(true);

JAVA:
DocumentBuilderFactorydbf =DocumentBuilderFactory.newInstance();
dbf.setExpandEntityReferences(false);

Python
from lxml import etree
xmlData = etree.parse(xmlSource,etree.XMLParser(resolve_entities=False))

  • 方案二、过滤用户提交的XML数据

关键词:<!DOCTYPE和<!ENTITY,或者,SYSTEM和PUBLIC。

免责声明:文章转载自《XML外部实体(XXE)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Python中读取txt文本出现“ 'gbk' codec can't decode byte 0xbf in position 2: illegal multibyte sequence”的解决办法delphi FastReport快速入门下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

XML文件与实体类的互相转换

一.将XML文件反序列化为实体类对象   1. 通常程序的配置信息都保存在程序或者网站的专门的配置文件中(App.config/web.config)。但是现在为了演示XML序列化和反序列化,将配置信息保存在一个XML文件(config.xml)中,通过反序列化将配置信息读取出来保存到一个单独的类(Config.cs)中。这样如果需要用到配置信息,没必要每...

webservice 介绍

Webservice即web服务,它是一种跨编程语言和跨操作系统平台的远程调用技术即跨平台远程调用技术。 l采用标准SOAP(SimpleObjectAccessProtocol)协议传输,soap属于w3c标准。Soap协议是基于http的应用层协议,soap协议传输是xml数据。 l采用wsdl作为描述语言即webservice使用说明书,wsdl属w...

java使用freemarker模板导出word(带有合并单元格)文档

来自:https://blog.csdn.net/qq_33195578/article/details/73790283 前言:最近要做一个导出word功能,其实网上有很多的例子,但是我需要的是合并单元格的,可是查了好久都没有自己想要的。研究了几天其实挺简单的,在这儿我就简单的介绍一下吧!(此方法只是一种思路,借鉴者还有根据需求来具体写代码) 一、准备...

JAX-WS HandlerChain使用详解

JAX-WS的Handler和Servlet的Filter相似,可以对所有WebServicer进行拦截,在Handler中可以记录日志、权限控制、对请求的SOAP消息进行加密,解密等。JAX-WS提供两个Handler接口,LogicalHandler和SOAPHandler。LogicalHandler处理的是Message Payload,只能够访...

C# 序列化与反序列化之xml通过实现IXmlSerializable进行序列化的解决方案

新建控制台console项目,添加XmlPersonIXmlSerializable类,和AddressIXmlSerializable类(实现IXmlSerializable)以及AddressIXmlSerializable子类USAddressIXmlSerializable 代码如下: using System; using System.Col...

C#操作XML文档(XmlDocument、XmlNode、XmlAttribute、SelectSingleNode、SelectNodes、XmlNodeList)

XML文档是一种通用的文档,这种文档既可以用.config作为后缀也可以用.xml作为后缀。XML文档主要由元素节点和节点的属性共同构成的。它有且仅有一个根节点,其他的节点全部都是根节点的子节点或者子子节点;每一个节点有开始就一定会有结束,不可能出现有开始无结束的节点,节点主要有两种类型:有InnerText的<city>……</cit...