IceCMS漏洞复现+分析(首发)
字数 2148 2025-08-23 18:31:34
IceCMS漏洞复现与分析教学文档
1. 环境搭建
1.1 系统概述
IceCMS是一个基于Spring Boot+Vue的前后端分离内容管理系统,存在多个安全漏洞。
1.2 搭建步骤
- 获取源码:
https://github.com/Thecosy/iceCMS,选择2.0.1版本 - 后端配置:
- 修改
application.yml配置MySQL账号密码 - 使用MySQL 8.0.12版本
- 在
\IceCMS-main\sql\路径下运行SQL文件 - 通过
pom.xml下载所需依赖
- 修改
- 前端配置:
- 进入
\IceCMS-main\IceWk-vues路径 - 安装依赖:
npm install或使用淘宝源:npm install --legacy-peer-deps --registry=https://registry.npm.taobao.org - 启动前端:
npm run dev
- 进入
- 启动后端服务
2. 漏洞复现与分析
2.1 CVE-2023-6466 - 存储型XSS漏洞
漏洞位置:http://localhost:9528/planet
漏洞描述:
- 广场功能存在未彻底修复的存储型XSS漏洞
- 开发人员在1.0版本修复不彻底
复现步骤:
- 插入payload:
<object data="data:text/html,<script>alert(5)</script>"></object> - 使用不同浏览器访问验证
影响:
- 攻击者可注入恶意脚本,影响其他用户
2.2 CVE-2023-42188 - CSRF漏洞
漏洞描述:
- 存在跨站请求伪造漏洞
- 可导致管理员误操作
复现步骤:
- 构造恶意HTML页面:
<html> <body> <script>history.pushState('', '', '/')</script> <form action="http://localhost:9528/square/DelectSquareById/264"> <input type="submit" value="Submit request" /> </form> </body> </html> - 管理员访问该页面并点击提交后,ID为264的用户被删除
影响:
- 可导致任意用户删除等敏感操作
2.3 CVE-2023-6757 - 接口未授权访问
漏洞位置:/adplanet/PlanetUser
漏洞描述:
- 未授权访问敏感信息接口
复现步骤:
- 访问
/square/GetAllSquareUser接口 - 删除JWT token后仍可获取用户信息
- 验证可获取用户名、密码、邮箱等敏感信息
影响:
- 泄露大量用户敏感信息
2.4 CVE-2023-6758 - 未授权内容修改
漏洞位置:/squareComment/ChangeSquareById/{user id}/{content}
复现步骤:
- 访问
/adplanet/PlanetCommentList页面 - 捕获
/squareComment/ChangeSquareById/{user id}/{content}请求 - 删除JWT token后发送修改请求
- 验证内容是否被修改(返回1表示成功)
影响:
- 可任意修改用户评论内容
2.5 CVE-2023-6760 - 水平越权
漏洞位置:http://localhost:9528/userinfo/index
复现步骤:
- 创建两个测试账户(测试1和测试2)
- 使用测试2账户更新信息并抓包
- 使用测试1账户重复操作,替换userId为测试2的ID
- 修改email、性别、密码等信息
- 验证测试2账户信息是否被修改
影响:
- 普通用户可修改其他用户信息
2.6 CVE-2023-6761 - 垂直越权
漏洞位置:http://localhost:9528/userinfo/index
复现步骤:
- 创建普通账户(测试1)
- 抓取管理员请求包(已知管理员userId为3)
- 使用测试1账户请求,修改userId为3
- 更改管理员名称和密码并发送
- 验证管理员账号是否被修改
影响:
- 普通用户可提升权限修改管理员账户
2.7 CVE-2023-6762 - 越权删除
漏洞位置:http://localhost:8181/article/DelectArticleById/{Article ID}
复现步骤:
- 创建两篇文章(记录ID)
- 使用管理员账号删除文章并抓包
- 注销后使用普通用户账号获取token
- 替换管理员token为普通用户token
- 修改文章ID尝试删除其他文章
- 验证删除是否成功
影响:
- 普通用户可删除任意文章
3. 未公开漏洞
3.1 未授权用户信息获取
漏洞位置:http://localhost:8181/squareComment/ChangeSquareById/{user id}/{content}
复现步骤:
- 捕获请求包
- 删除JWT token后仍可获取用户信息
- 跨浏览器验证
3.2 未授权评论删除
漏洞位置:http://localhost:8181/square/DelectSquareById/{user id}/{content}
复现步骤:
- 删除评论并捕获数据包
- 发现依赖ID和JWT双重认证
- ID可控,可遍历删除所有评论
- 删除JWT认证后仍可成功删除
影响:
- 普通用户可删除网站所有评论
4. 修复建议
- 对所有敏感操作实施严格的权限验证
- 完善输入过滤,防止XSS攻击
- 为敏感操作添加CSRF Token防护
- 实施最小权限原则,避免越权
- 加强API接口的认证授权机制
- 对用户ID等敏感参数进行服务端校验
5. 总结
IceCMS存在多种类型的安全漏洞,包括XSS、CSRF、越权访问等,主要原因是缺乏严格的权限控制和输入验证。开发人员应重视安全编码实践,对所有用户输入进行严格过滤,并对所有敏感操作实施完善的权限验证机制。