之前一直沒(méi)有注意到序列化的問(wèn)題,現(xiàn)在來(lái)補(bǔ)一下吧
可以發(fā)現(xiàn)經(jīng)過(guò)序列化后以某種特定的形式打印了,具體的序列化知識(shí)百度吧,我解釋不好。
下面來(lái)記錄一下反序列化的利用吧
腳本如上,如果傳入的key為O:5:"WRITE":1:{s:1:"s";s:18:"<?php phpinfo();?>";}那么最終寫(xiě)入的b.php的內(nèi)容就是<?php phpinfo();?>了,可控的變量就是不可靠啊。。。。。
在做南郵ctf的時(shí)候碰到了一個(gè)php反序列化,可惜題目掛了,看看人家的高招
我的原意是構(gòu)造O:8:"just4fun":2:{s:5:"enter";s:4:"flag";s:6:"secret";s:4:"flag"},肯定錯(cuò)了,不然我也不來(lái)記錄了:)? ,好吧,菜雞看看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,此處的結(jié)構(gòu)為$a=&$b,此時(shí)可以用到R這個(gè)標(biāo)示,感謝博主,學(xué)習(xí)了