溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何進行ClassCMS后臺getshell 復現

發布時間:2021-11-11 09:19:30 來源:億速云 閱讀:221 作者:柒染 欄目:網絡管理

如何進行ClassCMS后臺getshell 復現,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

ClassCMS 簡介

ClassCMS 官網 :https://classcms.com/?

ClassCMS是一款簡潔靈活的開源內容管理系統,可以非常方便的通過它來快速開發各種網站應用。

兼容PHP5.2--PHP8.0,在APACHE、NGINX、IIS上都能使用,默認支持MySQL SQLite兩種數據庫,支持上百萬數據量。

系統沒有多余的功能,整體安裝包不到1M(去掉編輯器與Layui后不到300KB),擁有完善與靈活的應用插件機制,常用功能均可制作成應用插件.

系統模板語言簡單,只需要懂HTML+CSS即可制作簡單的網站模板.


后臺頁面基于Layui制作,自適應頁面,在手機端也有不錯的使用體驗.

通過后臺模型,可以快速增加欄目,支持無限級欄目,欄目網址支持中文.

擁有各類輸入框類型,能快速擴展文章字段,欄目變量,用戶屬性,通過應用插件也可方便的擴展制作各類輸入框.

后臺有完善的權限體系,可自定義每個角色的權限,,可自定義欄目與輸入框與的查看修改權限.

ClassCMS 后臺Getshell 黑盒測試復現

ClassCMS下載最新版本 v1.3

如何進行ClassCMS后臺getshell 復現

程序下載解壓過后如下圖

如何進行ClassCMS后臺getshell 復現

搭建環境并啟動

如何進行ClassCMS后臺getshell 復現

配置好配置

如何進行ClassCMS后臺getshell 復現

如何進行ClassCMS后臺getshell 復現

如何進行ClassCMS后臺getshell 復現

如何進行ClassCMS后臺getshell 復現

打開應用管理--應用商店

如何進行ClassCMS后臺getshell 復現

隨便點擊某個應用進行下載

如何進行ClassCMS后臺getshell 復現

如何進行ClassCMS后臺getshell 復現

點擊下載時進行抓包

如何進行ClassCMS后臺getshell 復現

如何進行ClassCMS后臺getshell 復現

獲取一下返回包

如何進行ClassCMS后臺getshell 復現

這個時候會返回一個插件下載地址

繼續Forward

如何進行ClassCMS后臺getshell 復現

POST /admin/?do=shop:downloadClass&ajax=1 HTTP/1.1Host: 192.168.253.1:8013Content-Length: 142Accept: application/json, text/javascript, */*; q=0.01X-Requested-With: XMLHttpRequestUser-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.104 Safari/537.36Content-Type: application/x-www-form-urlencoded; charset=UTF-8Origin: http://192.168.253.1:8013Referer: http://192.168.253.1:8013/admin/?do=shop:index&bread=304%E7%BC%93%E5%AD%98%E6%8F%92%E4%BB%B6&action=detail&classhash=cache304Accept-Encoding: gzip, deflateAccept-Language: zh-CN,zh;q=0.9Cookie: token_43f1a9=53f68d86f94ad3c93551924e77d0e91a; csrf_43f1a9=5f5244ceConnection: closeclasshash=cache304&url=http%3A%2F%2Fclasscms.com%2Fshop%2F%3Faction%3Ddownload%26version%3D1.0%26classhash%3Dcache304%26token%3D&csrf=5f5244ce

向 /admin/?do=shop:downloadClass&ajax=1 POST 了一個插件地址和插件名稱

新建一個小馬并壓縮

如何進行ClassCMS后臺getshell 復現

如何進行ClassCMS后臺getshell 復現

上傳到服務器,并能夠下載的地方,也可以在網站處尋找文件上傳的地方

修改網址為壓縮包的地址如何進行ClassCMS后臺getshell 復現

如何進行ClassCMS后臺getshell 復現

然后訪問

http://192.168.253.1:8013/class/cache304/index.php

如何進行ClassCMS后臺getshell 復現

已經成功上傳了小馬

如何進行ClassCMS后臺getshell 復現

ClassCMS 后臺Getshell 白盒測試復現

直接查看/class/shop/shop.php 的第82行

如何進行ClassCMS后臺getshell 復現

直接調用了this:download函數

function download($url,$filepath) {$curl=curl_init();curl_setopt($curl,CURLOPT_URL,$url);if(!$fp = @fopen ($filepath,'w+')) {Return false;}curl_setopt($curl,CURLOPT_FILE, $fp);curl_setopt($curl,CURLOPT_CONNECTTIMEOUT,10);curl_setopt($curl,CURLOPT_TIMEOUT,300);curl_setopt($curl,CURLOPT_SSL_VERIFYPEER,FALSE);curl_setopt($curl,CURLOPT_SSL_VERIFYHOST,FALSE);$info=curl_exec($curl);$httpinfo=curl_getinfo($curl);curl_close($curl);fclose($fp);if($httpinfo['http_code']>=300) {@unlink($filepath);Return false;}Return $info;}}

然后再到92行

如何進行ClassCMS后臺getshell 復現

if(C('cms:class:unzip',$classfile,$classdir)) {@unlink($classfile);if(C('cms:class:refresh',$classhash)) {echo(json_encode(array('msg'=>"下載完成,請在應用管理頁面中安裝此應用")));Return ;}else {echo(json_encode(array('msg'=>"安裝包格式錯誤,請重試",'error'=>1)));Return ;}}else{@unlink($classfile);echo(json_encode(array('msg'=>"安裝包解壓失敗,請重試",'error'=>1)));Return ;}

調用了/cms/class.php 下面的unzip方法

function unzip($src_file, $dest_dir=false, $create_zip_name_dir=true, $overwrite=true) {if(class_exists('ZipArchive')) {$zip = new ZipArchive;if ($zip->open($src_file) === TRUE){if(@$zip->extractTo($dest_dir)) {$zip->close();Return true;}$zip->close();}}elseif(function_exists('zip_open')) {if(!cms_createdir($dest_dir)) {Return false;}if ($zip = zip_open($src_file)){if ($zip){if($create_zip_name_dir){$splitter='.';}else {$splitter='/';}if ($dest_dir === false){$dest_dir = substr($src_file, 0, strrpos($src_file, $splitter))."/";}while ($zip_entry = @zip_read($zip)){$pos_last_slash = strrpos(zip_entry_name($zip_entry), "/");if ($pos_last_slash !== false){cms_createdir($dest_dir.substr(zip_entry_name($zip_entry), 0, $pos_last_slash+1));}if (zip_entry_open($zip,$zip_entry,"r")){$file_name = $dest_dir.zip_entry_name($zip_entry);if ($overwrite === true || $overwrite === false && !is_file($file_name)){$fstream = zip_entry_read($zip_entry, zip_entry_filesize($zip_entry));@file_put_contents($file_name, $fstream);}zip_entry_close($zip_entry);}}@zip_close($zip);}Return true;}}Return false;}

直接就會將下載的文件進行解壓,從而構成后臺getshell

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女