安全矩阵

 找回密码
 立即注册
搜索
查看: 1956|回复: 0

CVE-2021-32682 elFinder RCE 简单分析

[复制链接]

991

主题

1063

帖子

4315

积分

论坛元老

Rank: 8Rank: 8

积分
4315
发表于 2022-1-23 09:36:46 | 显示全部楼层 |阅读模式
原文链接:CVE-2021-32682 elFinder RCE 简单分析

简介elFinder 是一个开源的 web 文件管理器,使用 jQuery UI 用 JavaScript 编写。Creation 的灵感来自于 Mac OS X 操作系统中使用的 Finder 程序的简单性和便利性。
漏洞描述
该漏洞源于,在创建新的zip存档时,没有对name参数进行严格的过滤,导致参数被带入prox_open中执行,造成命令注入
影响版本
elFinder <= 2.1.58
环境搭建
下载地址:
https://github.com/Studio-42/elFinder
下载完成后,重命名/php/connector.minimal.php-dist为/php/connector.minimal.php
然后在浏览器中加载运行/elfinder.src.html即可

漏洞分析
源码地址:
https://github.com/Studio-42/elFinder/releases/tag/2.1.58
得知是通过存档功能,传递name参数造成命令注入,然后进行抓包


可以看出是在connector.minimal.php文件中进行操作
在connector.minimal.php文件中发现,包含文件autoload.php





在autoload.php中,不确定在哪个文件,不过通过名字大概率可以在elFinderVolumeLocalFileSystem.class.php和elFinder.class.php中可以找到

先进入elFinderVolumeLocalFileSystem.class.php中,通过抓包得知cmd=archive,可能有archive函数





发现果然有,跟进makeArchive函数





可以看出参数确实是传到makeArchive,但是不是通过_archive传进来的
接下来在elFinder.class.php中尝试

先对name参数进行isset判断,然后传入archive函数中,继续跟进





$name先进行了正则转换后进行了字符串替换,然后先传入到uniqueName中,后传入到remoteArchive中,先跟进到uniqueName中


可以看出是对$name进行了一些转换替换,最后返回$name值
接下来返回上一步,跟进到remoteArchive中


看见参数传入到makeArchive函数中,继续跟进





到这里参数通过escapeshellarg()进行转义,然后拼接其它参数赋值给$cmd,然后进入到procExec函数中





可以看见$cmd被作为参数,放入到proc_open中执行命令
proc_open命令详解如下:




自此整个流程分析完成,虽然中间对参数进行了正则和替换的过滤操作,但是因为程序会将name参数值解析为标志(--foo=bar),可以通过zip的-TT指定要运行的测试命令,如:-TmTT="$(id>out.txt)foooo"
通过测试得到,参数在传入到proc_open中执行命令前,其值为"zip -r9 -q 'a1.zip' './a.zip'",所以我们可以构造成以下命令"zip -r9 -q '-TmTT="$(id>out.txt)foooo".zip' './a.txt'",执行id命令并将结果输出到out.txt中




参考链接

  • https://github.com/Studio-42/elFinder/commit/a106c350b7dfe666a81d6b576816db9fe0899b17
  • https://blog.sonarsource.com/elfinder-case-study-of-web-file-manager-vulnerabilities
  • https://packetstormsecurity.com/files/164173/elfinder_archive_cmd_injection.rb.txt





回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|安全矩阵

GMT+8, 2024-4-19 18:15 , Processed in 0.013366 second(s), 18 queries .

Powered by Discuz! X4.0

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表