提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
认识XXE之前必学认识XML,XML 指可扩展标记语言(Extensible Markup Language)
XML是用于 标记电子文件 使其具有 结构性 的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。XML文档结构包括XML声明、DTD文档类型定义(可选)、文档元素。
提示:以下是本篇文章正文内容,下面案例可供参考
一、xxe漏洞简介和xml介绍
XXE漏洞全称XML External Entity Injection,即XML外部实体注入。可以把它视为一种注入漏洞,注入的是外部实体。
XXE漏洞发生在应用程序解析XML输入时,没有禁止外部实体的加载,导致可加载恶意外部文件和代码,造成任意文件读取、命令执行、内网端口扫描、攻击内网网站、发起dos攻击等危害。
XXE漏洞触发点往往是可以上传XML文件的位置,没有对上传的XML文件进行过滤,导致上传任意的xml文件。
XEE的攻击思路:
1、引用外部实体远程文件读取;
2、Bild XXE;
3、dos
XML介绍
定义
XML是用于 标记电子文件 使其具有 结构性 的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。XML文档结构包括XML声明、DTD文档类型定义(可选)、文档元素。
文档结构
XML文档结构包括XML声明、DTD文档类型定义(可选)、文档元素。
所有的 XML 文档(以及 HTML 文档)均由以下简单的构建模块构成:
元素
属性
实体
PCDATA
CDATA
<!--XML声明-->
<?xml version="1.0"?>
<!--文档类型定义-->
<!DOCTYPE note [ <!--定义此文档是 note 类型的文档-->
<!ELEMENT note (to,from,heading,body)> <!--定义note元素有四个元素-->
<!ELEMENT to (#PCDATA)> <!--定义to元素为”#PCDATA”类型-->
<!ELEMENT from (#PCDATA)