首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

4分钟视频看懂XXE 漏洞原理

视频讲解XXE 漏洞原理,我们来看看XXE 漏洞是基于什么特性导致的

你好,我是好刚,这一讲我们来了解XXE 漏洞 (XML External Entity Injection)。

1. XXE 漏洞原理

这次的漏洞是XXE漏洞,全称叫:XML 外部实体注入(XML External Entity Injection)。我们来看看这个名称。

首先是XML,XML 是一种标记语言,可以用来定义数据类型,定义好的数据可以方便的在系统间传输和使用。

这是一个XML文档,它的结构可以分为XML声明、文档类型定义(DTD)、文档元素,其中DTD 是可选的,这次漏洞就是在解析DTD 时产生的。

2. DTD 与实体

这里DTD(文档类型定义)的作用是定义XML文件中有哪些模块,这些模块能包含什么样的内容。常见的模块有元素,属性,实体,PCDATA,CDATA等等。

其中一种模块是实体。实体就像编程语言中的常量,我们可以将一串普通文本定义为一个实体,这样就可以在XML 通过这个实体引用这段文本。实体主要有两种,直接在DTD 中声明的实体称为内部实体,通过 从外部引入内容的是外部实体。

这样解释比较抽象,我们先来看一个内部实体的示例,看看实体到底是什么。

定义好实体后,在XML 中使用实体时,有固定的格式:以 开头,中间是实体名,再以 结尾。经过解析后,实体将会被替换成定义的内容,这里XML 会变成这样:

这就是实体,通过将一串文本定义为一个实体,就可以在XML 通过这个实体来引用这段文本。

3. 外部实体

在来看一下外部实体,这是一个外部实体的示例,外部实体的标志是使用 将外部文件的内容定义到实体上,然后可以在XML 中通过这个实体,引用外部文件的内容。

这里实体将会被替换成定义的内容,也就是,正常使用中 的内容可能被返回给用户,也就会将服务器 的内容暴露给了攻击者,导致服务器被攻击。

XXE 漏洞,正是利用了XML 外部实体可以解析外部文件的特性,才使得攻击成为可能。

这就是XXE 漏洞的原理,这一讲先介绍到这,下一讲我将介绍基于XXE 漏洞的攻击流程以及这次微信支付的漏洞到底出现在哪个环节。我是好刚,好钢用在刀刃上,我们下期见。

参考资料

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180721A0LHXW00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券