XXE漏洞详解(一)——XML基础
今天继续给大家介绍渗透测试相关知识,本文主要内容是XXE漏洞详解(一)——XML基础。
免责声明:
本文所介绍的内容仅做学习交流使用,严禁利用文中技术进行非法行为,否则造成一切严重后果自负!
再次强调:严禁对未授权设备进行渗透测试!
一、XML简介
XML,即Extensible Markdown Language,可扩展标记语言的缩写。XML是一种允许用户对自己的标记语言进行定义的源语言,可以用于标记数据,定义数据类型。XML是标准通用标记语言,具有可扩展性好、内容与形式分离、语法要求严格、保值性好等优点。
XML与HTML非常相似,但是XML的设计宗旨是用于传输数据,而HTML的设计宗旨是用于展示数据。XML的标签没有被预定义,因此我们可以自己定义标签。
二、XML语法规则
接下来,我们来讲解XML语法规则。
(一)XML基本语法
一个典型的XML文档如下所示:
<?xml version="1.0" encoding="utf-8" ?>
<person>
<name>Bob</name>
<age>24</age>
<address>1-1-110</address>
<country>China</country>
<major>History</major>
</person>
在上述文档中,第一行是XML文档的头部声明,指明了XML文档的版本号和编码。XML对于头部声明并不严格要求,可有可无,但是一般最好写上头部声明。
在XML文档中,必须存在一个根节点,根节点是其他所有节点的父节点,在上述文档中,根节点是person。在XML中,所有的标签必须成对出现,标签名区分大小写并且标签不能交叉。但是标签名称可以自行定义。
(二)XML注释
XML文档中可以使用注释,注释的使用格式如下所示:
<!--This is annotation-->
(三)XML属性
XML支持在标签元素中定义属性,写法类似于HTML,示例如下所示:
<name len="3">Bob</name>
XML规定,一个标签可以有多个属性,但是属性的值必须使用引号括起来。
(四)XML特殊字符处理
XML如果想表达特殊字符,有两种方法。
第一种方法是使用转义字符,常用的转义字符如下表所示:
转义字符 | 转义内容 |
---|---|
& | & |
< | < |
> | > |
" | 引号(") |
| 空格( ) |
第二种方式是使用CDATA区域,CDATA区域定义如下所示:
<![CDATA[【CDATA区域内容】]]>
XML规定,对CDATA区域内的所有特殊字符不进行解析。
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200