11.19 XXE

XXE

全称XML External Entity InjectionXML外部实体注入攻击。

XML是用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。文档结构包括XML声明、DTD文档类型定义(可选)、文档元素。

Html  标签固定 ,结构:html声明、头部、body  。为了显示数据

.xml   标签不固定,用户可自定义,结构:XML声明、DTD、文档元素。为了传输数据

<!DOCTYPE 变量名 [定义的元素]>

<!ELEMENT 变量名 (定义元素的名称)>

 

 

xml实体

 

在一个甚至多个XML文档中频繁使用某一条数据,可以先定义一个这条数据的别名,即一个ENTITY,然后在这些文档需要他的地方调用他。

分为外部实体、内部实体(来源区分)

XMl定义了两种ENTITY,一种在XML文档中使用,另一种作为参数在DTD文件中使用。

定义好的ENTITY在文档中通过“&实体名;”来使用。

可以把实体当作XML语言的变量。

实体类型:普通实体、外部实体、参数实体、外部参数实体

普通实体用&,参数实体用%

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE reset [
<!ENTITY % a SYSTEM "http://127.0.0.1/test.dtd">
%a;
]>
<reset>
  <login>&xxe;</login>
  <secret>Any bugs?</secret>
</reset>

XXE危害

使用file读取敏感文件:配置文件、/etc/passwd

内网服务探测:http://10.10.10.10:80 /22/3306.....来探测端口

DOS攻击,递归调用,占用系统资源

无回显(盲型xxe

使用数据带外技术(OOB),使用类似DNSlog的一些平台

猜你喜欢

转载自www.cnblogs.com/x98339/p/11891040.html
xxe