找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 104|回复: 0

海康威视 CVE-2021-36260 分析&利用

[复制链接]

2万

主题

128

回帖

10万

积分

管理员

积分
105836
发表于 2021-11-16 11:13:20 | 显示全部楼层 |阅读模式 IP:山东省 移动/数据上网公共出口

登录后更精彩...O(∩_∩)O...

您需要 登录 才可以下载或查看,没有账号?立即注册

×
本帖最后由 mind 于 2021-11-16 11:16 编辑

海康威视 CVE-2021-36260 分析&利用
本文仅提供安全研究与教学之用,用户将其信息做其他用途,由用户承担全部法律及连带责任,本站不承担任何法律及连带责任

这篇文章只是图个乐,大家看个乐就行

0x0 漏洞说明

  • 这个漏洞形成的关键是主程序davinci在处理language标签时出现的逻辑错误,设备的逻辑如下
  • 客户端准备一个xml文件,在其中的language标签指定语言信息,然后put给设备
  • 设备解析出xml文件中的language标签的内容(这里称之为tag_language)
  • 设备从固定路径中尝试加载tag_language文件
  • tag_language文件加载失败后,设备使用sprintf+tag_language来构建出解压指令tar zxf %s -C /home/webLib/doc/xml
  • tar zxf %s -C /home/webLib/doc/xml中%s指的就是tag_language
  • 将$(query_args)设置为tag_language即可实现指令注入:tar zxf $(query_args) -C /home/webLib/doc/xml
  • 指令执行完成

  • 接下来开始详细讲解

0x1 解析tag
  • 一切始于解析tag_language
  • 关键函数sub_55581C的关键代码如下:
image-20211104170522979.png
  • 主要负责解析出tag_language
  • 然后将tag_language传递给加载器load_language:sub_F0CF0

0x2 判别tag
  • 先来看一下load_language:sub_F0CF0的上半部分
image-20211104170858644.png
  • 尝试加载/home/webLib/doc/xml/{tag_language}
  • 文件如果存在就视为加载成功,直接退出函数
  • 如果文件不存在就继续指令

0x3 构造指令
  • 这里就是关键了
  • 看一下load_language:sub_F0CF0加载语言的关键代码
image-20211104171119142.png
  • 首先构造出language文件压缩包的地址:/dav/{language_tag}.tar.gz
  • 然后构造出解压指令:tar zxf /dav/{language_tag}.tar.gz -C /home/webLib/doc/xml
  • 当传入language_tag=$(reboot)时,对应的解压指令为tar zxf /dav/$(reboot).tar.gz -C /home/webLib/doc/xml
  • 指令执行成功

0x4 利用
漏洞原理到这里结束了,这里来收一下尾巴:
  • 执行的指令长度不能超过22字节,原因如下
image-20211104172112306.png
  • 这里使用snprintf来构造目标指令
  • snprintf设置了最大长度为37
  • snprintf的格式化参数/dav/%s.tar.gz已经占用了12字节
  • 我们通过$(cmd)的方式来传递language_tag,此时$()回会用三个字节
  • 到此为止,cmd能使用的长度为37-12-3=22
  • 如何获取返回值
  • 注入指令的运行目录为/home
  • web目录为/home/webLib
  • 重定向结果到web目录即可cmd >webLib/r
  • 有些设备将/home/webLib挂载为只读,怎么解决这里就不展开了
  • 突破22字节
  • 通过分析原理可以发现指令执行的长度不能超过22字节,实际上可以绕过的
  • 可以将指令先写到文件中,然后执行文件
  • 具体代码这里就不放出来了
  • 关于buxybox
  • 通过研究发现海康威视设备中使用的busybox精简程度不同
  • 有的设备还存在dropbear之类的程序,可以辅助渗透
  • 不巧,我这份啥都没有,干干净净的:joy:
image-20211104173309571.png
  • 唯一与网络有关的居然是ping
  • 话说ping也可以传递数据

发表于:2021/11/04


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|IOTsec-Zone|在线工具|CTF WiKi|CTF平台汇总|CTF show|ctfhub|棱角安全|rutracker|攻防世界|php手册|peiqi文库|CyberChef|猫捉鱼铃|手机版|小黑屋|cn-sec|分享屋 ( 鲁ICP备2021028754号 )

GMT+8, 2024-5-10 01:36

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表