CNVD-2020-45697——74cms后台SQL注入漏洞
字数 935 2025-08-20 18:17:31
74cms后台SQL注入漏洞分析报告 (CNVD-2020-45697)
漏洞概述
74cms v3.7版本存在后台SQL注入漏洞,攻击者可在获取后台管理员权限后,通过构造特殊请求实现数据库信息泄露。该漏洞属于高危漏洞,影响系统数据安全。
漏洞发现过程
- 通过全局搜索
select语句开始审计 - 发现
{$参数}和uid参数均无注入风险 - 审计到第67行SQL语句时发现可疑点
漏洞定位
第一个注入点
- 文件路径:
/admin/admin_category.php - 参数:
id(通过GET方式传递) - 漏洞位置:
act=edit_color操作 - 漏洞类型:整数型SQL注入
- 测试URL:
http://[target]/74cms1/3.7/upload/admin/admin_category.php?act=edit_color&id=1 - 利用POC:
http://[target]/74cms1/3.7/upload/admin/admin_category.php?act=edit_color&id=-1 union select 1,version()
第二个注入点
- 同一文件中的
edit_color_save操作 - 参数:
id(通过POST方式传递) - 存在CSRF Token防护(hiddentoken参数)
- 利用POC(需配合有效Token):
POST /74cms1/3.7/upload/admin/admin_category.php?act=edit_color_save HTTP/1.1
...
hiddentoken=bfe00749&val=%23bc123a&id=1+and+if(length(database())>5,sleep(10),1)&addsave=%B1%A3%B4%E6
第三个潜在点(已确认不可利用)
- 方法:
get_color_one() - 参数:
$val(通过POST传递) - 防护措施:使用
intval()强制转换为整数,无法注入字符串
漏洞利用限制
- 需要后台管理员权限
- 部分注入点需要有效CSRF Token
- 整数型注入限制了部分攻击方式
修复建议
- 对所有用户输入参数进行严格过滤
- 对整数型参数使用
intval()等强制类型转换 - 完善CSRF防护机制
- 使用预编译语句替代直接SQL拼接
审计工具
推荐使用Seay源代码审计系统进行类似审计工作:
- 下载链接:百度云盘
- 提取码:e37f
总结
该漏洞展示了后台系统同样可能存在安全风险,强调了纵深防御的重要性。即使需要管理员权限才能利用的漏洞,也应被及时修复,防止在权限提升后造成更大危害。