日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

【安全漏洞】CVE-2021-32682 elFinder RCE 简单分析

發(fā)布時(shí)間:2025/3/21 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【安全漏洞】CVE-2021-32682 elFinder RCE 简单分析 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

簡(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)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。