XXE漏洞1-XXE 漏洞简介-XML 语法-DTD 讲解-外部实体讲解
一.XXE漏洞简介及原理。
XXE(XML External Entity)漏洞是一种基于XML解析的安全漏洞,攻击者通过构造恶意的
XML文档,利用外部实体引用功能读取服务器上的敏感文件、执行远程请求或发起服务端请求伪造
(SSRF)攻击。XXE漏洞源于XML解析器未禁用外部实体加载功能。XML标准允许定义外部实
体,通过SYSTEM关键字引用本地或远程资源。当解析器处理包含恶意外部实体的XML输入时,
可能泄露系统文件或触发非预期网络请求。
二.XML文档介绍
XML指可扩展标记语言是一种标签语言,和HTML很类似。
XML的设计宗旨是传输数据,而非显示数据。HTML被设计用来显示数据。
XML标签没有被预定义,需要自行定义标签。
XML被设计为具有自我描述性。
XML是W3C的推荐标准。
下面进行简单的xml代码认识:
<?xml version="1.0" encoding="ISO-8859-1"?>
<note>
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
</note>
这里注意三个点:
1.这里所以的标签全部是自己定义的,
2.第一行就是自我描述性的体现。
3.一定要严格闭合,上面有<note>下面也要有</note>,否则会报错。
4.严格区分大小写,闭合标签前后大小写一致。
在/var/www/html下写入note.xml。
然后浏览器查看即可。
三.XML DTD 介绍
拥有正确语法的 XML 被称为“形式良好”的 XML。
通过 DTD 验证的 XML 是“合法”的 XML。
DTD 全称是 The document type definition,即是文档类型定义,通过 DTD 验证 XML 是否合
法。
内部DTD文件:
外部DTD文件:
四.实体介绍
什么是实体及实体的定义
实体的调用
如下图所示:
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder &fjw;</heading>
<body>Don't forget me this weekend!</body>
</note>
实体的分类
1.通用实体
<!ENTITY fjw "fjw nice">
调用方式&fjw;
2.参数实体(只能在DTD内部调用)
<1ENTITY % fjw "fjw nice">
调用方式 %free;
外部实体的介绍
然后再创建一个free.txt文件输入free附的值。
外部实体的调用还是一样的&free;
这就是外部实体。
注意:无论是外部DTD还是外部实体,都是XML文档解析时才会加载的。