【安全漏洞】CVE-2021-32682 elFinder RCE 简单分析
簡(jiǎn)介
elFinder 是一個(gè)開(kāi)源的 web 文件管理器,使用 jQuery UI 用 Ja??vaScript 編寫。Creation 的靈感來(lái)自于 Mac OS X 操作系統(tǒng)中使用的 Finder 程序的簡(jiǎn)單性和便利性。
漏洞描述
該漏洞源于,在創(chuàng)建新的zip存檔時(shí),沒(méi)有對(duì)name參數(shù)進(jìn)行嚴(yán)格的過(guò)濾,導(dǎo)致參數(shù)被帶入prox_open中執(zhí)行,造成命令注入
影響版本
elFinder <= 2.1.58
環(huán)境搭建
下載地址: https://github.com/Studio-42/elFinder
下載完成后,重命名/php/connector.minimal.php-dist為/php/connector.minimal.php
然后在瀏覽器中加載運(yùn)行/elfinder.src.html即可
漏洞分析
源碼地址: https://github.com/Studio-42/elFinder/releases/tag/2.1.58
私信回復(fù)“資料”獲取Web網(wǎng)站開(kāi)發(fā)、滲透測(cè)試、等級(jí)保護(hù)、內(nèi)網(wǎng)安全、源碼審計(jì)、風(fēng)險(xiǎn)評(píng)估、安全巡檢、應(yīng)急響應(yīng)等全套視頻教程、課件、筆記、學(xué)習(xí)思路大綱【點(diǎn)擊查看】
得知是通過(guò)存檔功能,傳遞name參數(shù)造成命令注入,然后進(jìn)行抓包
可以看出是在connector.minimal.php文件中進(jìn)行操作
在connector.minimal.php文件中發(fā)現(xiàn),包含文件autoload.php
在autoload.php中,不確定在那個(gè)文件,不過(guò)通過(guò)名字大概率可以在elFinderVolumeLocalFileSystem.class.php和elFinder.class.php中可以找到
先進(jìn)入elFinderVolumeLocalFileSystem.class.php中,通過(guò)抓包得知cmd=archive,可能有archive函數(shù)
發(fā)現(xiàn)果然有,跟進(jìn)makeArchive函數(shù)
可以看出參數(shù)確實(shí)是傳到makeArchive,但是不是通過(guò)_archive傳進(jìn)來(lái)的
接下來(lái)在elFinder.class.php中嘗試
先對(duì)name參數(shù)進(jìn)行isset判斷,然后傳入archive函數(shù)中,繼續(xù)跟進(jìn)
$name先進(jìn)行了正則轉(zhuǎn)換后進(jìn)行了字符串替換,然后先傳入到uniqueName中,后傳入到remoteArchive中,先跟進(jìn)到uniqueName中
可以看出是對(duì)name進(jìn)行了一些轉(zhuǎn)換替換,最后返回name進(jìn)行了一些轉(zhuǎn)換替換,最后返回name進(jìn)行了一些轉(zhuǎn)換替換,最后返回name值
接下來(lái)返回上一步,跟進(jìn)到remoteArchive中
看見(jiàn)參數(shù)傳入到makeArchive函數(shù)中,繼續(xù)跟進(jìn)
到這里參數(shù)通過(guò)escapeshellarg()進(jìn)行轉(zhuǎn)義,然后拼接其它參數(shù)賦值給$cmd,然后進(jìn)入到procExec函數(shù)中
可以看見(jiàn)$cmd被作為參數(shù),放入到proc_open中執(zhí)行命令
proc_open命令詳解如下:
自此整個(gè)流程分析完成,雖然中間對(duì)參數(shù)進(jìn)行了正則和替換的過(guò)濾操作,但是因?yàn)槌绦驎?huì)將name參數(shù)值解析為標(biāo)志(–foo=bar),可以通過(guò)zip的-TT指定要運(yùn)行的測(cè)試命令,如:-TmTT="$(id>out.txt)foooo"
通過(guò)測(cè)試得到,參數(shù)在傳入到proc_open中執(zhí)行命令前,其值為"zip -r9 -q ‘a(chǎn)1.zip’ ‘./a.zip’",所以我們可以構(gòu)造成以下命令"zip -r9 -q ‘-TmTT="$(id>out.txt)foooo".zip’ ‘./a.txt’",執(zhí)行id命令并將結(jié)果輸出到out.txt中
總結(jié)
以上是生活随笔為你收集整理的【安全漏洞】CVE-2021-32682 elFinder RCE 简单分析的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: php源代码保护——PHP加密方案分析解
- 下一篇: 【网络安全】浅析跨域原理及如何实现跨域