[极客大挑战 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。太不容易了。

posted @ 2022-05-13 20:39  lpiz  阅读(55)  评论(0)    收藏  举报