[极客大挑战 2019]PHP 反序列化
2021-03-19 10:25
标签:请求 mic 私有变量 pre load select lag http code 1. 题目主页为一个很鬼畜的猫猫,会跟着鼠标晃头 题目说猫猫会踩键盘,所以作者每次都会机制的备份文件,所以这里想到了有备份文件。 一开始使用dirsearch找,发现都是429请求过多,看样子不能自动扫备份文件,根据经验尝试一下 www 2. 遍历各个文件,flag.php内的flag是假的,较为有用的是index.php和class.php。 其中index.php关键代码: 这里可以看出,index.php包含了class.php,接受get传参给select,随后序列化处理。 class.php关键代码 class.php中,定义了Name类,有两个私有变量username和password,随后定义了_construct(),_wakeup(),_destruct()函数,分别为,建立对象时会调用的函数,反序列化时首先调用的函数,和析构前调用的函数。 代码审计后发现传入的对象必须为username=admin且password=100才能输出正确的flag,于是构造序列化字符串 由于对象变量为私有变量,序列化后会产生不可见字符%00,将其填入序列化后的字符串中。 3. 在提交参数前,需要注意,反序列化后首先会调用_wakeup()函数,所以需要将序列化后{前的数字改大,大于类中的变量数,利用php序列化的特性,即可绕过_wakeup函数,不提前为变量赋值。 payload: [极客大挑战 2019]PHP 反序列化 标签:请求 mic 私有变量 pre load select lag http code 原文地址:https://www.cnblogs.com/cmredkulaa/p/14551854.html.tar
www.zip等等,运气比较好的是www.zip为备份文件,下载下来看看。
O:4:"Name":3:{s:14:"%00Name%00username";s:5:"admin";s:14:"%00Name%00password";s:3:"100";}
?select=O:4:"Name":3:{s:14:"%00Name%00username";s:5:"admin";s:14:"%00Name%00password";s:3:"100";}
文章标题:[极客大挑战 2019]PHP 反序列化
文章链接:http://soscw.com/index.php/essay/66197.html