0x00 信息收集

ip:10.10.11.105

nmap -sT -sV -Pn -v 10.10.11.105

经过漫长的等待:

修改/etc/hosts然后访问80,查看源代码,在js/app.c68eb462.js中找到了可疑路径:

再次修改/etc/hosts,增加一条:

查看:

对该子域名进行扫描:

0x01 漏洞利用

访问/admin/init,得到Strapi的版本信息:

使用该脚本成功修改了管理员的密码,但是由于未知原因,命令执行失败。

后来排错是没有开放端口,开放9001然后监听,生效:

ufw allow 9001/tcp

在/home/developer/user.txt可找到user.txt,即用户flag。

0x02 权限提升(失败待记)

查看端口的开放情况:

netstat -tulpn|grep LISTEN
curl http://127.0.0.1:8000

CVE-2021-3129:

在Laravel8.4.2之前,由于Ignition组件(版本小于2.5.2)中MakeViewVariableOptionalSolution.php的file_get_contents()和file_put_contents()使用不安全,未经身份验证的远程攻击者可以执行任意代码。

需要端口转发,首先要在本地攻击机输入ssh-keygen生成密钥(rsakey)。

然后在目标机创建目录:/opt/strapi/.ssh/,把rsakey.hub的内容放在该目录下的authorized_keys文件里。

最后在本地输入命令,即可开启端口转发:

ssh -i rsakey -L 8000:127.0.0.1:8000 strapi@horizontall.htb

正常然后在github搜索CVE-2021-3129的脚本利用即可。不知道为什么均利用失败,还有待研究:(