[极客大挑战 2019]PHP
打开题目说有一个备份网站的习惯,试了一下index.php.bak之类的备份文件都没有结果就再也没有头绪了。后来就去找大佬的文章学习去了。。。

以下都是大佬说:
用dirsearch扫描当前网站
dirsearch.py -u (网站) -e (文件类型)


访问该路径后得到一个备份文件

看到flag.php打开看了一下

不是flag,又查看了index.php

发现有反序列化漏洞。(在这之前根本就不知道什么是反序列化漏洞,然后学习了很多文章后知道了。)
学习文章:https://www.jb51.net/article/188446.htm(如果什么都不懂的可以先去里面学习一下)


可能需要有一点点的代码基础吧。
可以看出需要password=100和usernam=admin才可以得到flag。
所以我们就进行反序列化

然后就得到了那样一段东西,具体表示的是什么含义前面学习的文章里面都有讲解。
我直接复制那段东西但是发现复制不了有奇怪的符号挡住了。(图中也可以看出)
后来才得知因为username和password是私有变量,变量中的类名前后会有空白符。
然后那个东西就用%00代替。
%00在web中会被当作16进制处理然后就会变成null。(不懂对不对应该跟%00截断一个原理吧。)
O:4:"Name":2:{s:14:"%00Name%00username";s:5:"admin";s:14:"%00Name%00password";i:100;
然后__weakup()绕过,在学习文章里面这个东西也有。

最后得到flag。太不容易了。

浙公网安备 33010602011771号