GKCTF2021-easycms
知识点概要:目录遍历、任意代码执行、任意文件下载
题目hint:后台密码5位弱口令
首页
根据题目hint,知道有后台,爆破得后台路径/admin.php

弱口令:admin:12356
思路一(目录穿越&任意代码执行)
登录成功后,左侧菜单栏UI
→Theme
,随便一个主题点击右下角Customize

编辑Header
,点击右上角Edit
可以写入php代码,写入<?php phpinfo();?>
试试

保存,显示如下,需要创建/var/www/html/system/tmp/saec.txt
文件
左侧菜单栏,UI
→CMPT
→Source List
,有个上传功能,随便上传个1.txt
(大小不能为0kb)
上传好后,点击右上角编辑
Title
文本框填如下内容(../
多一层少一层都不行)
../../../../../system/tmp/saec
保存后,再次点击编辑查看,Path已经变成如下图所示,实现目录穿越
再次回到UI
→Theme
→Customize
,按刚才的步骤写入phpinfo代码后,点击右上角Visual Editor
可看到phpinfo已被成功执行
那么同样写入如下代码,查看flag即可
<?php system("cat /flag");?>
思路二(任意文件下载)
左侧菜单栏UI
→Theme
→Customize
,点击右上角Export Theme
随便填,点击保存,会自动下载Theme
文件

把下载链接复制出来,theme参数值是base64编码
http://f68d3c85-3d68-46dd-a9c3-702d9b2c43d4.node4.buuoj.cn:81/admin.php?m=ui&f=downloadtheme&theme=L3Zhci93d3cvaHRtbC9zeXN0ZW0vdG1wL3RoZW1lL2RlZmF1bHQvMS56aXA=
解码如下
/var/www/html/system/tmp/theme/default/1.zip
那么修改成/flag
的base64编码L2ZsYWc=
http://f68d3c85-3d68-46dd-a9c3-702d9b2c43d4.node4.buuoj.cn:81/admin.php?m=ui&f=downloadtheme&theme=L2ZsYWc=
访问,下载完成后,记事本打开即可看到flag