Headline
CVE-2023-27091: TeaCMS have a logic flaw · Issue #I6SXAF · XiaoBingBy/TeaCMS - Gitee.com
An unauthorized access issue found in XiaoBingby TeaCMS 2.3.3 allows attackers to escalate privileges via the id and keywords parameter(s).
TeaCMS存在逻辑缺陷
项目介绍
TeaCMS是由Spring-SpringMVC-MyBatis-MySQL数据库开发的一个博客系统。
开源项目地址
https://gitee.com/xiaobingby/TeaCMS
技术选择
后端:1.Spring、2.Spring MVC、3.MyBatis、4.druid-数据库连接池
5.PageHelper-Mybatis通用分页插件、6.FreeMarker-模板引擎
前端:1.Bootstrap、2.jQuery、3.jQuery Form、4.Vue.js、5.pace.js–网页自动加载进度条插件、6.bootstrapValidator.js-最好用的bootstrap表单验证插、7.lobibox-强大的jQuery消息通知框和信息提示框插件、8.ECharts-Javascript 的图表库
后台-UI:、1.Bootstrap-AdminLTE
漏洞概述
TeaCMS后台管理界面存在垂直越权漏洞普通用户demo可以访问超级管理员用户root的接口,进一步修改网站信息。
影响版本
2.3.3.RELEASE
环境搭建
1、下载源码,导入IDEA,使用maven进行编译
2、初始化数据库
漏洞复现
1.登录管理员root用户访问管理员界面,添加0权普通用户demo
登录demo用户,查看后台权限:
2.使用burpsuit抓取该管理员后台设置数据包
数据包如下:
3.将数据包中admin用户的cookie替换成demo用的cookie
发包成功,利用demo用户身份成功更改网站信息:
漏洞分析
缺陷代码位置
@RequestMapping(value = “/config.html”)
public String config(ModelMap modelMap) {
WebConfig webConfig = webconfigDao.selectByPrimaryKey(1);
modelMap.put("webConfig", webConfig);
return "_admin/system/config";
缺陷方法:config
这里没有对访问该接口的用户进行身份验证
修复方式
对可允许访问该接口的用户身份类型进行严格限制