之前一直没有注意到序列化的问题,现在来补一下吧
可以发现经过序列化后以某种特定的形式打印了,具体的序列化知识百度吧,我解释不好。
下面来记录一下反序列化的利用吧
脚本如上,如果传入的key为O:5:"WRITE":1:{s:1:"s";s:18:"<?php phpinfo();?>";}那么最终写入的b.php的内容就是<?php phpinfo();?>了,可控的变量就是不可靠啊。。。。。
在做南邮ctf的时候碰到了一个php反序列化,可惜题目挂了,看看人家的高招
我的原意是构造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
N代表NULL,R是成员的次序,好吧,可以看到这里有些相同之处就是$o->enter===$o->secret $a->pr=&$a->str,此处的结构为$a=&$b,此时可以用到R这个标示,感谢博主,学习了