pikachu靶场-10 XXE漏洞

news2024/11/28 6:38:53

XXE漏洞

概述

XXE -“xml external entity injection”
既"xml外部实体注入漏洞"。
概括一下就是"攻击者通过向服务器注入指定的xml实体内容,从而让服务器按照指定的配置进行执行,导致问题"
也就是说服务端接收和解析了来自用户端的xml数据,而又没有做严格的安全控制,从而导致xml外部实体注入。

具体的关于xml实体的介绍,网络上有很多,自己动手先查一下。
现在很多语言里面对应的解析xml的函数默认是禁止解析外部实体内容的,从而也就直接避免了这个漏洞。

XML文档格式:

image-20221213172031270

DTD:Document Type Definition即文档类型定义,用来为XML文档定义语义约束

  1. DTD内部声明

    <!DOCTYPE 根元素[元素声明]>
    
  2. DTD外部引用

    <!DOCTYPE 根元素名称 SYSTEM "外部DTD的URI">
    
  3. 引用公关的DTD

    <!DOCTYPE 根元素 PUBLIC "DTD标识名" "公用DTD的URI">
    

外部实体引用payload:

<?xml version ="1.0"?>
<!DOCTYPE ANY[
	<!ENTITY fSYSTEM "file:///etc/passwd">
]>
<x>&f;</x>

外部引用可以支持http,file,ftp等协议。

如果一个接口支持接收xml数据,且没有对xml数据做任何安全上的措施,就可能导致XXE漏洞。

simplexml_load_string()

函数转换形式良好的XML字符串为SimpleXMLElement对象

以PHP为例,在PHP里面解析xml用的是libxml,其在≥2.9.0的版本中,默认是禁止解析xml外部实体内容的。

XXE漏洞发生在应用程序解析XML输入时,没有禁止外部实体的加载,导致攻击者可以构造一个恶意的XML。

靶场

image-20221213174351145

我们先来看一下它的后台代码是怎么写的

image-20221213174507425

image-20221213174806526

这里是一个DTD,我们把它发回后端,看看会出现什么

image-20221213174854653

这里把DTD里对应的值直接返回回来了。

这是我们可以去构造这样做一个定义,在DTD里面通过system这个关键字去指定一个外部实体,,外部实体就以为着我们可以根据它的一些协议去读取外部的数据。

image-20221213175121327 image-20221213175259201

age-20221213175259201.png" alt=“image-20221213175259201” style=“zoom:67%;” />

这个实际上就是它的后端在接收XML数据的时候,第一它开启了外部实体解析,第二它没有对传过来的数据做任何的过滤,导致了这么一个问题。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

shell语法总结一(持续补充)

文章目录一、变量1、变量的命名规则2、查看变量3、删除命令4、变量的作用域4.1、局部变量4.2、全局变量4.3、环境变量5、自定义变量6、只读变量二、字符串1、单引号2、双引号&#xff08;用的多&#xff09;3、拼接字符串4、获取字符串的长度5、提取子字符串三、shell数组1、定…

必须掌握的数据库面试问题

一、为什么用自增列作为主键 1、如果我们定义了主键(PRIMARY KEY)&#xff0c;那么InnoDB会选择主键作为聚集索引。 如果没有显式定义主键&#xff0c;则InnoDB会选择第一个不包含有NULL值的唯一索引作为主键索引。 如果也没有这样的唯一索引&#xff0c;则InnoDB会选择内置…

1990-2021年全国各省产业高级化 数据

1990-2021年全国各省产业高级化数据 1、来源为&#xff1a;统计NJ、各省NJ 2、包括&#xff1a;全国31个省份 3、时间&#xff1a;1990-2021年 4、指标包括&#xff1a; 各地区经纬度、第三产业增加值、第二产业增加值、高级化水平 高级化水平第三产业增加值(亿元) / 第二…

HTTP协议【报文格式】

文章目录HTTP协议什么是HTTP协议HTTP协议格式抓包工具的使用HTTP请求URLURL的组成URL encodeHTTP请求的报文格式HTTP响应的报文格式HTTP方法GET方法POST方法POST方法与GET方法的区别请求报头HTTP响应状态码状态码的组成状态码的类别HTTP协议 什么是HTTP协议 HTTP协议即Hyper T…

m基于GA遗传优化的多因素加权竞价博弈频谱分配算法matlab仿真

目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 假设有M个用户均为MIMO Full Duplex&#xff0c;N个频率&#xff0c;1<N<M&#xff0c;设计算法实现M个用户与N个频率的匹配。 由于在一个MIMO系统中&#xff0c;用户数量M大于可用的频谱个…

web自动化测试入门篇04——selenium+python基础方法封装

&#x1f60f;作者简介&#xff1a;博主是一位测试管理者&#xff0c;同时也是一名对外企业兼职讲师。 &#x1f4e1;主页地址&#xff1a;【Austin_zhai】 &#x1f646;目的与景愿&#xff1a;旨在于能帮助更多的测试行业人员提升软硬技能&#xff0c;分享行业相关最新信息。…

记录一次解决centos不定时触发oom的经历

前言 前一段时间&#xff0c;业务部门的系统不定时的反馈&#xff0c;系统打开不了&#xff0c;提示&#xff1a; 等技术开发同学反应过来去查看业务状态时&#xff0c;服务又恢复了&#xff0c;由于不是核心的业务&#xff0c;并且出问题差不多1分钟左右&#xff0c;没太在意…

【Vue 快速入门系列】todoList案例小总结

文章目录一、案例效果二、项目介绍三、版本更新迭代末、项目素材1.css样式2.html一、案例效果 如下图所示&#xff0c;制作一个这样的记事本&#xff0c;可以使用这个记事本进行数据的存储以及管理&#xff0c;样式是天禹老师写好的我们直接使用就好了&#xff0c;主要在这个小…

[UE][UE5]零基础学习-学习记录1-UE5安装与基本使用方法

[UE5]学习1-UE5安装与基本使用方法写在前面01.作者碎碎念2.UE5安装方法01.UE5需要的电脑配置02.UE5安装方法001.Epic下载002.下载安装UE503.基本使用方法001.创建项目打开现有的项目&#xff1a;002.文件目录结构003.用户界面介绍1).3D画面视窗2).菜单栏3).内容浏览器4).属性面…

关于CM3/CM4位带操作的总结

1.位带操作定义 STM32的存储器映射中的内存区域和外设区域有一段地址空间&#xff08;都是最低1MB&#xff09;是位带区域&#xff0c;跟这个区域相对应的有一段位带别名区域&#xff0c;位带别名区的大小是位带区的32倍&#xff0c;位带别名区的每一个地址都对应位带区域的一个…

C. Hamiltonian Wall edu139 div2

Problem - C - Codeforces 题意是给你一个2*n的网格&#xff0c;让你一笔把所有的B涂满&#xff0c;并且只能涂一次&#xff0c;问你是否可行 分析&#xff1a; 其实分析的时候我想到了转移。每一次的结果是由上一次转移而来&#xff0c;所以如果前后矛盾的话&#xff0c;即…

人工智能:智能语音技术应用场景介绍

❤️作者主页&#xff1a;IT技术分享社区 ❤️作者简介&#xff1a;大家好,我是IT技术分享社区的博主&#xff0c;从事C#、Java开发九年&#xff0c;对数据库、C#、Java、前端、运维、电脑技巧等经验丰富。 ❤️个人荣誉&#xff1a; 数据库领域优质创作者&#x1f3c6;&#x…

虹科QA | SWCF2022 12月6日演讲笔记:C波段卫星与5G之间的干扰排查及解决方案

虹科2022年度SWCF卫星通信与仿真测试研讨会正在进行中。昨日精彩演讲&#xff1a;C波段卫星与5G之间的干扰排查及解决方案&#xff0c;感谢大家的观看与支持&#xff01; 昨晚的直播间收到一些粉丝的技术问题&#xff0c;虹小科汇总了热点问题并请讲师详细解答&#xff0c;在此…

目前UI设计薪资待遇怎么样?工作好找吗?

UI设计的火爆&#xff0c;导致有很多年轻人都愿意投身于这个行业。有很多年轻的朋友都在问&#xff0c;UI设计的薪资待遇怎么样&#xff1f;工作难找吗&#xff1f;本文统一解答一下。 1、UI设计的薪资水平 UI设计的薪资待遇一直很好&#xff0c;学习UI设计之前没有任何相关基础…

PMP每日一练 | 考试不迷路-12.13(包含敏捷+多选)

被延期考试的宝子 一定要坚持刷题 每日5道PMP习题助大家上岸PMP&#xff01; ​题目1-2&#xff1a; ​1.一位主要相关方要求将每日站立会议的持续时间人15分钟增加到1小时。Scrum主管应该做什么? ( ) A.接受建议并建议团队更改会议时间表 B.安排与产品负责人和团队开…

窗口销毁消息 WM_DESTROY 的正确处理方式

上次&#xff0c;我提到了可能导致正常的消息循环被破坏的怪异之处。 有一位读者 Adrian 指出&#xff0c;WM_GETMINMAXINFO 消息在顶级窗口 WM_NCCREATE 之前到达。这确实很不幸&#xff0c;但&#xff08;无论是否错误&#xff09;十多年来一直如此&#xff0c;现在修改它会…

【实时数仓】实现用户行为日志相关功能(源码)

文章目录一 准备用户行为日志-DWD层1 代码实现&#xff08;1&#xff09;识别新老访客&#xff08;2&#xff09;利用侧输出流实现数据拆分&#xff08;3&#xff09;将不同流的数据推送到下游kafka的不同Topic&#xff08;分流&#xff09;a 封装方法b 程序中调用kafka工具类获…

数据链路层

文章目录数据链路层的功能ARP协议DNS-------域名解析&#xff08;浅浅的了解一下&#xff09;在浏览器中输入URL后&#xff0c;发生的事情&#xff08;经典面试题&#xff09;ICMP协议NAT技术代理服务器网络核心知识大总结数据链路层的功能 对比理解网络层。 网络层 &#xff…

飞控学习随记

常见指令 编译Arduplane程序 cd ardupilot/ ./waf plane 进入 Tools/autotest 文件夹中&#xff0c;启动3D flightgear ./fg_quad_view.sh 进入ArduPLane文件夹中&#xff0c;启动仿真 sim_vehicle.py --map --console -L KSFO&#xff08;-L 选择起飞位置&#xff09; 解锁…

字节女测试工程师万字总结的软件测试入门技巧

成为一个优秀的测试工程师需要具备哪些知识和经验&#xff1f; 针对这个问题&#xff0c;可以直接拆分以下三个小问题来详细说明&#xff1a; 1、优秀软件测试工程师的标准是什么&#xff1f; 2、一个合格的测试工程师需要具备哪些专业知识&#xff1f; 3、一个合格的测试工程…