[SWPUCTF 2022 新生赛]1z_unserialize和[SWPUCTF 2022 新生赛]ez_1zpo

 

[SWPUCTF 2022 新生赛]1z_unserialize

[SWPUCTF 2022 新生赛]1z_unserialize和[SWPUCTF 2022 新生赛]ez_1zpo_第1张图片

这个题目是一题很标准的反序列化,

$a = $this->lt;

$a($this->lly);

这是这一题的注入点只要传参把$a变成system();$this->lly变成ls或者cat就是一个简单的命令注入了

[SWPUCTF 2022 新生赛]1z_unserialize和[SWPUCTF 2022 新生赛]ez_1zpo_第2张图片

构造链条

得到以下payload=O:3:"lyh":3:{s:3:"url";s:10:"NSSCTF.com";s:2:"lt";s:6:"system";s:3:"lly";s:2:"ls";}

接着传参发现能够正常执行命令

[SWPUCTF 2022 新生赛]1z_unserialize和[SWPUCTF 2022 新生赛]ez_1zpo_第3张图片

接着cat /flag

[SWPUCTF 2022 新生赛]1z_unserialize和[SWPUCTF 2022 新生赛]ez_1zpo_第4张图片

得到flag

[SWPUCTF 2022 新生赛]ez_1zpo

[SWPUCTF 2022 新生赛]1z_unserialize和[SWPUCTF 2022 新生赛]ez_1zpo_第5张图片

这题打开是一串多多的pop链

 这里的利用点是

这个地方

以及这里有个wakeup的绕过,以及这里需要一个assert的函数不知道为啥要它,以及里边有一个md5的弱比较,绕过这三个就能够正常的命令执行了

接着在另外给自己传参一个参数,在这个参数里做命令执行

[SWPUCTF 2022 新生赛]1z_unserialize和[SWPUCTF 2022 新生赛]ez_1zpo_第6张图片

这个是构造的pop链

输出如下

因为wakeup的原因

三要改成四

接着就能成功命令执行了

[SWPUCTF 2022 新生赛]1z_unserialize和[SWPUCTF 2022 新生赛]ez_1zpo_第7张图片

在根目录下边找到flag的文件

得到flag

 

 

 

 

 

 

你可能感兴趣的:(经验分享,笔记)