03攻防世界-unserialize3

根据题目可以看出,这是个反序列化的题目

打开网址观察题目可以看到这里是php的代码,那么也就是php的反序列化

image-20240307150254059

本题需要利用反序列化字符串来进行解题,根据源码提示我们需要构造code。 序列化的意思是:是将变量转换为可保存或传输的字符串的过程。

反序列化就是将字符串在转化回变量。这种方式能轻松的存储和传输数据,但反序列化有一个漏洞,通过这个漏洞我们可以跳过反序列化操作的执行。这样就不会执行后面的exit函数。 但是原代码中并没有序列化所以我们无法进行反序列化,所以我们需要添加一个序列化来将我们的变量变成字符串。在php中序列化和反序列化函数分别为serialize,__wakeup。下面就要将代码补充完整(即添加序列化)

<?php
class xctf{                     //定义一个名为xctf的类public $flag = '111';         //定义一个公有的类属性public function __wakeup(){   //定义一个公有的类方法__wakeup(),用于输出badexit('bad requests');          //退出当前脚本}
}
$a= new xctf();          //使用new运算符来实例化该类(xctf)的对象 a
print(serialize($a));     //输出被序列化的对象
?>

在ps中执行代码后结果是

但是输入这个的时候,我们发现

image-20240307151602870

对于这个字符串我们可以看到它有一个变量值("xctf":后面的1)。而对于反序列化来说如果字符串中的变量的数目和真实的数目不一样那么__wakeup会出现错误,我们就造成了反序列化漏洞,所以我们在填写字符串时将变量值的数目从1改成2,输入网页网址后即可获得flag。改成3或者4都是可以的。

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

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

相关文章

【机器学习300问】66、ReLU激活函数相对于Sigmoid和Tanh激活函数的优点是什么?ReLU它有局限性吗?如何改进?

一、ReLU相对于Sigmoid和Tanh的优点 &#xff08;1&#xff09;计算效率高 ReLU函数数学形式简单&#xff0c;仅需要对输入进行阈值操作&#xff0c;大于0则保留&#xff0c;小于0则置为0。Sigmoid和Tanh需要指数运算但ReLU不需要。所以相比之下它会更快&#xff0c;降低了神经…

使用odbc链接dm8数据库

一、环境说明 windows11 VMware Workstation 17 Pro ubuntu22.04 docker $ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 22.04.3 LTS Release: 22.04 Codename: jammy因docker版本的dm8中&#xff0c;没有…

滑动窗口例题

一、209:长度最小的子数组 209:长度最小的子数组 思路&#xff1a;1、暴力解法&#xff1a;两层for循环遍历&#xff0c;当sum > target时计算子数组长度并与result比较&#xff0c;取最小的更新result。提交但是超出了时间限制。 class Solution {public int minSubArray…

每日一题---移除元素

文章目录 1.题目名称2.题目思路2.1.思路1:2.2.思路2&#xff1a; 3.参考代码 每日一题—移除元素 1.题目名称 2.题目思路 2.1.思路1: 创建一个新的数组&#xff0c;将值不为val的放到新的数组&#xff0c;然后在返回新的数组的大小&#xff0c;但是题目专门说啦&#xff0c;这…

多线程入门

文章目录 多线程相关的概念什么是多线程多线程的创建方式继承Thread方式实现Runable方式两种方式比较Thread类中常用方法 多线程相关的概念 并发与并行 并行&#xff1a;在同一时刻&#xff0c;有多个任务在多个CPU上同时执行。并发&#xff1a;在同一时刻&#xff0c;有多个任…

我与C++的爱恋:类与对象(二)

​ ​ &#x1f525;个人主页&#xff1a;guoguoqiang. &#x1f525;专栏&#xff1a;我与C的爱恋 ​ 本篇着重介绍构造函数和析构函数&#xff0c;剩余内容在下篇解答。 一、类的默认成员函数 如果一个类中什么成员都没有&#xff0c;简称为空类。 任何类在什么都不写时…

Vue - 5( 16000 字 Vue2 入门级教程)

一&#xff1a;Vue 初阶 1.1 组件自定义事件 在 Vue 中&#xff0c;组件间通过自定义事件进行通信是一种常见的模式。自定义事件允许子组件向父组件发送消息&#xff0c;也可以在组件内部进行事件的绑定、触发和解绑。让我们详细讲解这些知识点。 1.1.1 组件自定义事件 在 …

Python | Leetcode Python题解之第27题移除元素

题目&#xff1a; 题解&#xff1a; class Solution:def removeElement(self, nums: List[int], val: int) -> int:a 0b 0while a < len(nums):if nums[a] ! val:nums[b] nums[a]b 1a 1return b

Springboot+Vue项目-基于Java+MySQL的社区团购系统(附源码+演示视频+LW)

大家好&#xff01;我是程序猿老A&#xff0c;感谢您阅读本文&#xff0c;欢迎一键三连哦。 &#x1f49e;当前专栏&#xff1a;Java毕业设计 精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; &#x1f380; Python毕业设计 &…

社交媒体数据恢复:推特、Twitter

推特&#xff08;Twitter&#xff09;数据恢复&#xff1a;如何找回丢失的内容 随着社交媒体的普及&#xff0c;越来越多的人开始使用推特&#xff08;Twitter&#xff09;来分享生活点滴、发表观点和获取信息。然而&#xff0c;有时候我们会不小心删除了重要的推文&#xff0…

K8s下部署grafana

1. 系统要求 最小化的软硬件要求 最小化硬件要求 磁盘空间: 1 GB内存: 750 MiB (approx 750 MB)CPU: 250m (approx 2.5 cores) 2. k8s部署grafana步骤 1) 创建名字空间 kubectl create namespace my-grafana 2) 创建yaml vim grafana.yaml yaml包含如下三个资源对象 Ob…

Springboot+Vue项目-基于Java+MySQL的母婴商城系统(附源码+演示视频+LW)

大家好&#xff01;我是程序猿老A&#xff0c;感谢您阅读本文&#xff0c;欢迎一键三连哦。 &#x1f49e;当前专栏&#xff1a;Java毕业设计 精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; &#x1f380; Python毕业设计 &…