┌──(kali㉿JYlover)-[~]
└─$ nmap -p- 192.168.56.104
Starting Nmap 7.98 ( https://nmap.org ) at 2026-06-02 01:20 +0800
Nmap scan report for 192.168.56.104
Host is up (0.0032s latency).
Not shown: 65533 closed tcp ports (reset)
PORT STATE SERVICE
22/tcp open ssh
5000/tcp open upnp
Nmap done: 1 IP address (1 host up) scanned in 24.02 seconds发现22,5000
web渗透
注册了一个账号进来,点了一下系统管理,发现要admin权限,我们看看是不是有办法登录admin账号的
抓包看看:
发现cookie存在jwt验证。解密看看:
payload中存在username
那也就是说可能可以把username换成admin。
并且是HS256加密,那我们尝试爆破一手密钥。
密钥是maze
直接到官网来,把username字段修改为admin。然后抓包改包试试。
偶看错了,上面说的是
jyli normal 退出登录
⚠️ 权限不足!只有 admin 等级的用户才能访问系统管理面板。
那么也就是说真正限制的应该是level字段,我们改一下:
成功登录进来管理员页面了。
(这里最好是直接改浏览器的cookie,这样后面就不要一直改包了)
进来之后我们就随便点点点。
发现后台的全局设置都是一个/api/settings/update接口实现。这里测一下sql注入。
发现存在数据库语法报错,应该存在注入漏洞。
我们构造子查询。
发现不存在database()函数。那就可能不是mysql了。可能是sqlite。我们试试sqlite的函数。
成功回显sqlite版本。
下一步获取表明
SELECT group_concat(tbl_name) FROM sqlite_master WHERE type='table'
应该是在secret表中我们看看表结构
SELECT sql FROM sqlite_master WHERE type='table' AND name='secret')
存在secret字段的呢,直接查询
select secret from secret
得到账号密码。
watcher:mazesec123q1231w!@#!@@#$
flag{user-c3949567202847f1ad8664095f0a94e4}
提权
话不多说先传一个pspy监控
注意到/opt目录下有个脚本在自动执行。
但是我们没有权限看

pspy里还有一句这个
inotifywait -m -e create /home/watcher/uploads问了一下ai:
实时监控 /home/watcher/uploads 目录,当有新文件或子目录创建时,立即输出事件信息。
说明如果uploads文件夹发生变化会触发一些东西。那这个uploads文件夹我们去看看。
开始里面什么也没有,我们随便创建一个文件
然后我们在注意一下pspy监控
检测到变化时会调用另外一个脚本,参数是我们写的文件,但是这个脚本我们看不到呀
我们不知道对这些文件做了什么,那我们用pspy的-f参数看一下文件系统。
能感觉到是调用了zip命令,猜测是调用zip命令去打包这些文件。
去GTFObins找一下
存在命令执行和文件读取。[https://gtfobins.org/gtfobins/zip/#file-read]
这里是定时任务执行zip命令,那我们应该是要构造参数提权
zip /path/to/temp-file /etc/hosts -T -TT '/bin/sh #'
zip /path/to/temp-file /path/to/input-file
unzip -p /path/to/temp-file这里想构造命令执行的参数,但是构造不了,于是问了ai,发现有一个—out参数。
可以指定压缩包名,这样我们就可以指定把压缩包放入当前文件夹了,然后zip命令默认会跟随软连接。所以:

flag{root-6661e4dc99e9408984d16d30b0c0730c}.
本来以为要解压,结果直接cat就出来了