XXE漏洞基本原理(原理+靶场复现漏洞)

一、XXE漏洞与xml:

1、XXE漏洞的概念与基本原理:

XXE漏洞,全称:"XML External Entity Injection"。

这种漏洞发生在应用程序解析XML输入数据时,如果没有禁止或限制对外部实体的引用和加载,那么攻击者可以上传含有恶意构造的外部实体的XML文件。这些恶意的外部实体可以被设计为访问服务器上的敏感文件、执行系统命令、扫描内网端口等,从而泄露信息或造成服务拒绝。

简而言之,XXE漏洞类似于其他注入类攻击(如SQL注入、XSS),都是利用了外部输入数据未被充分验证和过滤的安全缺陷。要防御XXE漏洞,可以在解析XML文档时禁止使用外部实体,确保所有XML输入都经过适当的验证和清理程序。

2、XML介绍:

XML是一种非常流行的标记语言,在解析外部实体的过程中,XML解析器可以根据URL中指定的方案(协议)来查询各种网络协议和服务(DNS,FTP,HTTP,SMB等)。 外部实体对于在文档中创建动态引用非常有用,这样对引用资源所做的任何更改都会在文档中自动更新。 但是,在处理外部实体时,可以针对应用程序启动许多攻击。 这些攻击包括泄露本地系统文件,这些文件可能包含密码和私人用户数据等敏感数据,或利用各种方案的网络访问功能来操纵内部应用程序。 通过将这些攻击与其他实现缺陷相结合,这些攻击的范围可以扩展到客户端内存损坏,任意代码执行,甚至服务中断,具体取决于这些攻击的上下文。

关于XML的具体语法参考下面一片文章,附上链接:

浅析无回显XXE(Blind XXE)


二、靶场漏洞复现(Pikachu):

1、有回显XXE漏洞复现:

有回显XXE漏洞后端代码示例,如下图:

正是 echo $creds; 将响应结果打印出来,构成了回显,显示在我们的前端页面上。

进入靶场,页面如下:

根据题目得知,输入框为接收xml数据的api,我们首先要判断是否有回显。

首先在输入框中提交以下XML代码:

<?xml version="1.0"?>
<!DOCTYPE root [
<!ENTITY xxe "XXE漏洞有回显">
]>
<root>&xxe;</root>

将代码提交后,页面如下:

我们可以看到页面出现了回显,那么我们就可以修改实体xxe的内容,将回显目标改为一些敏感目录,比如win.ini。

修改payload如下:

<?xml version="1.0"?>
<!DOCTYPE root [
<!ENTITY xxe SYSTEM "file:///C:/windows/win.ini">
]>
<root>&xxe;</root>

代码提交后,页面如下图所示:

可以看到敏感目录中的内容成功在页面上回显,漏洞复现成功。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【基于HTML5的网页设计及应用】——float实现页面布局

&#x1f383;个人专栏&#xff1a; &#x1f42c; 算法设计与分析&#xff1a;算法设计与分析_IT闫的博客-CSDN博客 &#x1f433;Java基础&#xff1a;Java基础_IT闫的博客-CSDN博客 &#x1f40b;c语言&#xff1a;c语言_IT闫的博客-CSDN博客 &#x1f41f;MySQL&#xff1a…

MySQL-----存储过程

▶ 介绍 存储过程是事先经过编译并存储在数据库中的一段SQL语句的集合&#xff0c;调用存储过程可以简化应用开发人员的很多工作&#xff0c;减少数据在数据库和应用服务器之间的传输&#xff0c;对于提高数据处理的效率是有好处的。 存储过程思想上很简单&#xff0c;…

字典树、并查集

字典树 字典树&#xff08; T r i e Trie Trie 树&#xff09;是一种由 “节点” 和 “带有字符的边” 构成的树形结构。典型应用是用于统计和排序大量的字符串&#xff08;但不仅限于字符串&#xff09;&#xff0c;经常被搜索引擎系统用于文本词频统计。优点&#xff1a;最大…

【三两波折】指向函数的指针

函数占用内存&#xff0c;在虚拟内存中属于txt段&#xff08;只读&#xff09;&#xff0c;函数也是有地址的。 函数指针的定义&#xff1a; (返回值类型)(*函数指针名)(参数列表) 当我们调用Proc函数时&#xff0c;一般写作&#xff1a; double ans Proc(6, 7.8f); 实际上是C…

Intel® Extension for PyTorch*详细安装教程

最近在研究Intel的pytorch的加速拓展Intel Extension for PyTorch*,但是发现官网的文档全是英文的&#xff0c;不太好找安装教程。所以特此分享Intel Extension for PyTorch*的详细安装教程。 文章目录 一、安装所需系统要求1.1 硬件需求1.2 软件需求 二、准备2.1 安装驱动程序…

搭建nacos集群,并通过nginx实现负载均衡

nacos、eureka、consul、zookeeper等都是常用的微服务注册中心&#xff0c;这篇文章详细介绍一下在Ubuntu操作系统上搭建一个nacos的集群&#xff0c;以及通过nginx的反向代理功能实现nacos的负载均衡。 目录 一、安装nacos 1、安装nacos 2、修改nacos配置文件 3、创建naco…

【Hadoop大数据技术】——HDFS分布式文件系统(学习笔记)

&#x1f4d6; 前言&#xff1a;Hadoop的核心是HDFS&#xff08;Hadoop Distributed File System&#xff0c;Hadoop分布式文件系统&#xff09;和MapReduce。其中&#xff0c;HDFS是解决海量大数据文件存储的问题&#xff0c;是目前应用最广泛的分布式文件系统。 目录 &#x…

智慧公厕_智慧化公厕_智慧的公厕_公厕智慧化_智能智慧公厕_智慧化的公厕

在当代城市发展中&#xff0c;智慧公厕作为公共厕所信息化的主要表现形式&#xff0c;正在以惊人的速度推动着城市公共环境卫生的智慧化进程。作为智慧城市体系的重要组成部分&#xff0c;智慧公厕不仅提供方便、卫生的公共厕所服务&#xff0c;还提升了城市整体形象&#xff0…

H5带建站时长可自定义背景官网/引导页源码

源码名称&#xff1a;带建站时长可自定义背景官网/引导页源码 源码介绍&#xff1a;一款带动态时间显示建站时长的引导页源码&#xff0c;可用于引导页、工作室官网、个人主页等。源码为H5自适应手机端、电脑端。 需求环境&#xff1a;H5 下载地址&#xff1a; https://www.…

java学习(集合)

一.集合(主要是单列集合和双列集合) 1.集合的框架体系&#xff08;两大类&#xff09; 2.collection接口是实现类的特点&#xff1a; 1)collection实现子类可以存放多个元素&#xff0c;每个元素可以是Object 2)有效Collection的实现类&#xff0c;可以存放重复的元素&#…

Vue.js+SpringBoot开发海南旅游景点推荐系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 用户端2.2 管理员端 三、系统展示四、核心代码4.1 随机景点推荐4.2 景点评价4.3 协同推荐算法4.4 网站登录4.5 查询景点美食 五、免责说明 一、摘要 1.1 项目介绍 基于VueSpringBootMySQL的海南旅游推荐系统&#xff…

MVCC------Mysql并发事务控制的工具

这里写目录标题 一.MVCC是什么二.原理1.隐藏的默认字段2.Undo log3.Undo log版本链4. ReadView 三.回答 一.MVCC是什么 MVCC 是 Multi-Version Concurrency Control&#xff08;多版本并发控制&#xff09;的缩写&#xff0c;是数据库系统中常用的一种并发控制方法。在MVCC 中…

高效管理百万级数据:MySQL备份与恢复实战指南

简介 在当今数字化时代&#xff0c;数据是企业不可或缺的核心资产之一&#xff0c;而MySQL作为一种流行的关系型数据库管理系统&#xff0c;其百万级数据的高效管理显得尤为重要。本实战指南将深入探讨MySQL备份与恢复的关键策略&#xff0c;为您提供全面而实用的解决方案。通…

SpringBoot中RestTemplate 发送http请求

SpringBoot中RestTemplate 发送http请求 引入fastjson <!--fastjson--> <dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>2.0.47</version> </dependency>创建配置文件 新建c…

链表中的经典问题——反转链表

经典问题 对于链表的结构还不太清晰的同学&#xff0c;可以看我的另一篇文章&#xff0c;实践总结&#xff1a;一篇搞懂链表——单链表和双指针技巧 反转链表 给你单链表的头节点 head &#xff0c;请你反转链表&#xff0c;并返回反转后的链表。 方法一&#xff0c;迭代法…

牛客周赛 Round 36

赛况 C题可惜&#xff0c;比赛时模拟没有想明白&#xff0c;只对了一半&#xff0c;赛后看了大佬们的题解后恍然大悟&#xff0c;而F题是压根没思路&#xff0c;况且F题部分分也比较难拿。 题目列表 A-小红的数位删除 思路 将读入的数字整除10做三次后输出即可 参考代码 #inc…

【数据结构】详解时间复杂度和空间复杂度的计算

一、时间复杂度&#xff08;执行的次数&#xff09; 1.1时间复杂度的概念 1.2时间复杂度的表示方法 1.3算法复杂度的几种情况 1.4简单时间复杂度的计算 例一 例二 例三 1.5复杂时间复杂度的计算 例一&#xff1a;未优化冒泡排序时间复杂度 例二&#xff1a;经过优化…

蓝桥杯备战刷题-滑动窗口

今天给大家带来的是滑动窗口的类型题&#xff0c;都是十分经典的。 1&#xff0c;无重复字符的最长子串 看例三&#xff0c;我们顺便来说一下子串和子序列的含义 子串是从字符串里面抽出来的一部分&#xff0c;不可以有间隔&#xff0c;顺序也不能打乱。 子序列也是从字符串里…

5分钟教你使用pyarmnn推理引擎识别一只可爱猫咪~

视频 5分钟教你使用pyarmnn推理引擎识别一只可爱猫咪&#xff5e; 添加仓库 sudo apt install software-properties-common sudo add-apt-repository ppa:armnn/ppa sudo apt update 安装pyarmnn sudo apt-get install -y python3-pyarmnn armnn-latest-all python3-pip安装…

鸿蒙Harmony应用开发—ArkTS声明式开发(基础手势:Checkbox)

提供多选框组件&#xff0c;通常用于某选项的打开或关闭。 说明&#xff1a; API version 11开始&#xff0c;Checkbox默认样式由圆角方形变为圆形。 该组件从API Version 8开始支持。后续版本如有新增内容&#xff0c;则采用上角标单独标记该内容的起始版本。 子组件 无 接口…