目录

Web安全-XXE漏洞

1. 前置知识

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

通常始于异步JavaScript和XML技术(ajax技术):网页应用能够快速地将增量更新呈现在用户界面上,而不需要重载(刷新)整个页面。目前JSON的使用比XML更加普遍JSON和XML都被用于在Ajax模型中的XML技术。这种标记语言允许开发人员定义和表示任意数据结构的HTML

常见的 XML 语法结构如下所示:

1
2
内部声明实体格式:<!ENTITY 实体名称 “实体的值”>。
引用外部实体格式:<!ENTITY 实体名称 SYSTEM “URI”>

2. 漏洞描述

XML 外部实体注入(XML External Entity)简称 XXE 漏洞

漏洞原理: XXE漏洞主要是利用了DTD引用外部实体导致的

一般会出现在当前站点允许引用外部实体的情况下

3. XXE漏洞的攻击

3.1 有回显

  • 读取敏感文件
  • 使用php伪协议读取文件
  • 扫描内网端口
  • 执行命令

3.2 没回显

  • 可以使用外带数据通道提取数据

4. XXE漏洞防御

  • 禁止外部实体方法
  • 过滤用户提交的XML数据
  • 升级libxml组件

最后看个视频结合文字来理解XXE漏洞(需要科学上网)

https://www.youtube.com/watch?v=gjm6VHZa_8s&t=5s