xfeng

xfeng

Sporting | Reading | Technology | Recording
github
bilibili

Web安全-XXE漏洞

1. 前置知识#

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

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

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

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

2. 漏洞描述#

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

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

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

3. XXE 漏洞的攻击#

3.1 有回显#

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

3.2 没回显#

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

4. XXE 漏洞防御#

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

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

加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。