目录
unserialize3
进入场景

class xctf{ //定义一个名为xctf的类
public $flag = '111'; //定义一个公有的类属性$flag,值为111
public function __wakeup(){ //定义一个公有的类方法__wakeup(),输出bad requests后退出当前脚本
exit('bad requests');
}
?code=
代码审计:
代码中的__wakeup()方法如果使用就是和unserialize()反序列化函数结合使用的 于是 这里实例化xctf类并对其使用序列化(这里就实例化xctf类为对象peak)
<?php
class xctf{ //定义一个名为xctf的类
public $flag = '111'; //定义一个公有的类属性$flag,值为111
public function __wakeup(){ //定义一个公有的类方法__wakeup(),输出bad requests后退出当前脚本
exit('bad requests');
}
}
$peak = new xctf(); //使用new运算符来实例化该类(xctf)的对象为peak
echo(serialize($peak)); //输出被序列化的对象(peak)
?>
运行结果

文章介绍了PHP中unserialize函数与类的__wakeup方法结合可能导致的安全问题,以及如何通过修改序列化字符串绕过wakeup方法。同时,讲解了fileinclude漏洞,特别是如何利用php伪协议读取文件内容,通过构造特定的cookie值来获取base64编码的flag。
最低0.47元/天 解锁文章
6722

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



