基本信息

端口扫描

常规的Linux,22和80:

80

看起来是个图床,有登录界面,很简单的注入,直接万能密码就可以:

1
'or'1'='1

bypass_image_upload

只能上传图像,并且存在文件头校验,那就做一个图片马上传:

直接加载个meterpreter:

config文件

在db.php5中发现一组账号密码:

1
theseus : iamkingtheseus

但这个账号只能公钥登录ssh,直接在已有shell里su提示su: must be run from a terminal

pty spawn

su问题搜到解决方法

https://stackoverflow.com/questions/36944634/su-command-in-docker-returns-must-be-run-from-terminal/41872292

但使用上面的密码失败:

mysqldump

根据上面的数据库信息dump:

1
mysqldump -utheseus -piamkingtheseus Magic

得到另一组账号密码:

1
admin : Th3s3usW4sK1ng

user flag

使用这个密码切换用户,得到user.txt:

为了方便我们可以把自己的ssh公钥加到靶机authorized_keys,然后直接通过ssh登录

提权信息

注意到sysinfo具有suid:

1
find / -perm -u=s -type f 2>/dev/null

那么我们考虑自己创建一个sysinfo会调用的程序例如lshw,并且修改环境变量提高它的优先级:

root flag

这样当执行sysinfo调用lshw时,执行的是我们的reverse shell代码,得到root.txt:

root目录有个info.c,里面也可以看到调用了lshw:

参考资料