2023年春秋杯网络安全联赛冬季赛_做题记录

可信计算

基于挑战码的双向认证1
可信计算赛题-双向认证挑战模式.docx

使用命令进行SSH登录上去

复制代码
ssh player@8.147.131.156 -p 18341      # 记得加上-p参数指定端口,不然默认的是22端口

看见word文档的提示,先尝试一下

直接获得了flag1

web

魔术方法__get()、__set()和__call()的用法

hint.php

复制代码
<?php
highlight_file(__FILE__);
$hint = "Not db,but 127.0.0.1!!!redis-flag{really}";
?>

只做到这里

复制代码
<?php
// highlight_file(__FILE__);
include "function.php";
class Rd
{
    public $ending;
    public $cl;

    public $poc;

    public function __destruct()								// __destruct(),即析构函数(destructor), 与构造函数相反,当对象结束其生命周期时(例如对象所在的函数已调用完毕),系统自动执行析构函数
    {
        echo "All matters have concluded"."</br>";
    }

    public function __call($name, $arg)							//  __call(),当在对象中调用一个不可访问方法时,__call() 会被自动调用
    {
        foreach ($arg as $key => $value) {

            if ($arg[0]['POC'] == "0.o") {
                $this->cl->var1 = "get";
            }
        }
    }
}

class Poc
{
    public $payload;

    public $fun;

    public function __set($name, $value)					// __set() 是一个魔术方法(Magic Method),用于在给未定义的属性赋值时自动调用。__set()是设置不存在的成员变量时调用的;
    {
        $this->payload = $name;
        $this->fun = $value;
    }

    function getflag($paylaod)
    {
        echo "Have you genuinely accomplished what you set out to do?"."</br>";
        file_get_contents($paylaod);
    }
}	

class Er
{
    public $symbol;
    public $Flag;

    public function __construct()						// __construct(),又称构造函数,它是一种会在创建对象时调用一次的函数
    {
        $this->symbol = True;
    }

    public function __set($name, $value)				// __set() 是一个魔术方法(Magic Method),用于在给未定义的属性赋值时自动调用。__set()是设置不存在的成员变量时调用的;
    {   
        if (preg_match('/^(http|https|gopher|dict)?:\/\/.*(\/)?.*$/',base64_decode($this->Flag))){
               $value($this->Flag);
        }
    else {
    echo "NoNoNo,please you can look hint.php"."</br>";
    }
    }


}

class Ha
{
    public $start;
    public $start1;
    public $start2;

    public function __construct()
    {
        echo $this->start1 . "__construct" . "</br>";		// __construct(),又称构造函数,它是一种会在创建对象时调用一次的函数
    }

    public function __destruct()							// __destruct(),即析构函数(destructor),当对象结束其生命周期时(例如对象所在的函数已调用完毕),系统自动执行析构函数
    {
        if ($this->start2 === "o.0") {
            $this->start1->Love($this->start);
            echo "You are Good!"."</br>";
        }
    }
}

function get($url) {
    $url=base64_decode($url);
    var_dump($url);
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    $output = curl_exec($ch);
    $result_info = curl_getinfo($ch);
    var_dump($result_info);
    curl_close($ch);
    var_dump($output);
}


# POP链子
# 

$r = new Rd();
$c = new Poc();
$e = new Er();
$h = new Ha();



// 序列化Payload
$payload = urlencode(serialize($h));

echo $payload;

// 将Payload发送到目标网站
$data = [
    'pop' => $payload,
];

$url = 'http://eci-2zece18v7toobwov2hoa.cloudeci1.ichunqiu.com/'; // 替换成目标网站的URL
$options = [
    'http' => [
        'method' => 'POST',
        'header' => 'Content-type: application/x-www-form-urlencoded',
    ],
];

$context = stream_context_create($options);
$response = file_get_contents($url);

// 输出响应
echo $response;

// if (isset($_POST['pop'])) {
//     $a = unserialize($_POST['pop']);
// } else {
//     die("You are Silly goose!");
// }

?>
相关推荐
anew___37 分钟前
《从零手写操作系统 (63):安全与加固——从内核保护到沙箱隔离》
网络·安全
其实防守也摸鱼1 小时前
个人学习 Pwn 思路:从基础到漏洞利用的进阶路径
大数据·前端·人工智能·chrome·算法·安全·网络安全
乐维_lwops3 小时前
案例解读:大型综合性科创产业园运维监控落地实践
运维·网络·人工智能·安全·it监控·国产运维智能体
m0_715674434 小时前
政务泛监测体系能力排行:AI 重塑监测边界,治理的颗粒度革命
大数据·网络·人工智能·安全·网络安全·政务
山东科恩光电4 小时前
安全触边在智能制造产线自动化设备防夹伤防护中的选型与应用实践
安全
躺柒6 小时前
读数据安全架构设计与实践20安全政策文件体系(上)
大数据·人工智能·安全·数据安全·安全架构·安全体系
文谦南宁AI普工6 小时前
CVSS 10.0 沙箱逃逸 + 假扩展后门:给 Agent 开发者的供应链与沙箱安全复盘(附可跑的配置审计器)
安全·agent·ai编程
时文鲜读11 小时前
算力基建提速,数据中心安全建设与工业可靠性如何同步升级?
大数据·人工智能·安全
yz_aiks11 小时前
Postman 自动给 Claude Code、Codex、Cursor 装插件怎么查和卸载:本机实测 5 处痕迹(Postman 12.34)
安全·postman·ai编程·开发工具·claude code
达梦产品与服务12 小时前
SQLark V4.2 更新 | 新增TiDB、SSL安全连接、数据字典、清空/截断表等40+项功能已上线!
数据库·安全·tidb·ssl