PHP反序列化

之前一直没有注意到序列化的问题,现在来补一下吧


PHP反序列化_第1张图片

可以发现经过序列化后以某种特定的形式打印了,具体的序列化知识百度吧,我解释不好。

下面来记录一下反序列化的利用吧


PHP反序列化_第2张图片

脚本如上,如果传入的key为O:5:"WRITE":1:{s:1:"s";s:18:"";}那么最终写入的b.php的内容就是了,可控的变量就是不可靠啊。。。。。

在做南邮ctf的时候碰到了一个php反序列化,可惜题目挂了,看看人家的高招

PHP反序列化_第3张图片

我的原意是构造O:8:"just4fun":2:{s:5:"enter";s:4:"flag";s:6:"secret";s:4:"flag"},肯定错了,不然我也不来记录了:)  ,好吧,菜鸡看看writeup,看到了些许不同O:8:"just4fun":2:{s:5:"enter";N;s:6:"secret";R:2;}
,瞬间石化。。。。N是啥。。。。R又是啥。。。。百度吧,最后这里找到了答案

http://blog.csdn.net/iamduoluo/article/details/8491746


PHP反序列化_第4张图片

N代表NULL,R是成员的次序,好吧,可以看到这里有些相同之处就是$o->enter===$o->secret   $a->pr=&$a->str,此处的结构为$a=&$b,此时可以用到R这个标示,感谢博主,学习了

你可能感兴趣的:(PHP反序列化)