利用Whatsapp Web服务劫持Whatsapp账户

简介:

黑客

一、前言

通过实现所有用户间的E2E加密,Whatsapp已经改变了它的形象,从一个令人震惊的安全的通信应用程序到被许多人尊重的应用程序的转变。

二、Whatsapp简介

Whatsapp帐号基于手机号码。这意味着手机号码就是你的用户名,它也被用来认证。尽管从隐私的角度看这不是完美的,让用户不必再记住另一个密码,他们可能会被重复使用,甚至更糟,通过钓鱼攻击泄漏。

登陆过程的简略描述:

http://p5.qhimg.com/t013435f6b36db17cbd.png

当每次用户启动应用后用户不得不输入他们的手机号。一个验证令牌通过SMS或者电话发送到这个号码。在验证码输入到这个应用后,认证令牌保存在设备中,用户成功登录。

当用户在新设备登录时,需要重复上述过程,并且老设备的授权被取消。Whatsapp不会在他们的服务器上保存老的消息,因此之前的消息不能转移到新的设备上。

当然这个过程是更加复杂的但是这种简化在本文中是适合的。

这种便利伴随着被网络黑客攻击的代价,能够访问电话号码。用户信任移动供应商也是需要的,因为他们对该号码有完全访问权限并且能接管帐号。

三、攻击者的角度

从低级的攻击者的角度来看,它很难被绕过。有两个问题:

1. 以一些方式访问受害者的手机号码。正如上面所述,这个能够通过网络攻击或者移动服务供应商实现。尽管能访问到手机号码,但是不能获得任何老的消息或者聊天历史记录,而且受害者会立即意识到一些事发生了,因为他们的手机会注销账户。

2. 进入操作系统,访问磁盘分区等。尽管这能实现,但是代价非常大。

四、新角色的加入

在2015年,Whatsapp启用了Whatsapp网络服务,能在电脑上面收发消息的网站。为了使用它,浏览器与与手机对等并且手机保持命令。下面是这个过程的简述:

Whatsapp启用了Whatsapp网络服务

通过用手机应用扫描网页上的二维码来授权登录。然后用户可以在浏览器中使用Whatsapp,只需要手机是打开的并且能被计算机访问。

这个给攻击者提供了一个方便的脚手架。欺骗用户扫描二维码,将得到将来和过去通信的全部访问权限。

五、一个正式的攻击

它非常简单:攻击者只需要欺骗用户扫描恶意的二维码来授权攻击者的浏览器。这个将给他们对于受害者账户的完全访问权限。一个简单的在线抽奖可以作为诱惑,受害者需要扫描二维码进入。

攻击过程描述:

http://p2.qhimg.com/t01444b5f71514ea484.png

为了更加复杂,Whatsapp不会在他们的注册页面展示静态的二维码,会几秒钟生成一个新的二维码。这个阻止了攻击者简单的复制并发布到另一个网站上。

在我的演示中我绕过这个障碍,通过使用脚本持续抓取二维码,并使用websocket连接发送给“受害者”。

缺陷:

  • 用户能看到他们授权的浏览器设备列表
  • 如果过另一个浏览器登入了受害者会收到一个警告
  • 这是个社工攻击:受害者必须参与给予权限
  • 但是,对于粗心的人来说这还是个有效的手段。

六、演示

我开发的工具使用selenium获取QR代码并使用express.js + socket.io在单独的页面上显示它们。如果受害者使用他们的手机扫描这个二维码,则document.cookie和selenium浏览器的本地存储将被转储到攻击者计算机上的文件中。然后可以使用获取的数据使用任何浏览器登录受害者的帐户。(代码)

七、修复手段

没有修复手段避免这种攻击,除了改进认证过程。我认为当他们开发网络客户端时就已经意识到了这种可能性,但是他们不认为这是个大问题。

作者:myswsun
来源:51CTO

相关文章
|
6月前
|
XML JSON 数据安全/隐私保护
Web服务
【10月更文挑战第18天】Web服务
97 9
|
2月前
|
数据采集 Web App开发 API
FastAPI与Selenium:打造高效的Web数据抓取服务 —— 采集Pixabay中的图片及相关信息
本文介绍了如何使用FastAPI和Selenium搭建RESTful接口,访问免版权图片网站Pixabay并采集图片及其描述信息。通过配置代理IP、User-Agent和Cookie,提高爬虫的稳定性和防封禁能力。环境依赖包括FastAPI、Uvicorn和Selenium等库。代码示例展示了完整的实现过程,涵盖代理设置、浏览器模拟及数据提取,并提供了详细的中文注释。适用于需要高效、稳定的Web数据抓取服务的开发者。
144 15
FastAPI与Selenium:打造高效的Web数据抓取服务 —— 采集Pixabay中的图片及相关信息
|
2月前
|
网络协议 Java Shell
java spring 项目若依框架启动失败,启动不了服务提示端口8080占用escription: Web server failed to start. Port 8080 was already in use. Action: Identify and stop the process that’s listening on port 8080 or configure this application to listen on another port-优雅草卓伊凡解决方案
java spring 项目若依框架启动失败,启动不了服务提示端口8080占用escription: Web server failed to start. Port 8080 was already in use. Action: Identify and stop the process that’s listening on port 8080 or configure this application to listen on another port-优雅草卓伊凡解决方案
113 7
|
8月前
|
安全 前端开发 API
【Azure 应用服务】Azure Web App 服务默认支持一些 Weak TLS Ciphers Suite,是否有办法自定义修改呢?
【Azure 应用服务】Azure Web App 服务默认支持一些 Weak TLS Ciphers Suite,是否有办法自定义修改呢?
125 4
|
6月前
|
XML JSON 安全
Web服务是通过标准化的通信协议和数据格式
【10月更文挑战第18天】Web服务是通过标准化的通信协议和数据格式
234 69
|
5月前
|
Go UED
Go Web服务中如何优雅平滑重启?
在生产环境中,服务升级时如何确保不中断当前请求并应用新代码是一个挑战。本文介绍了如何使用 Go 语言的 `endless` 包实现服务的优雅重启,确保在不停止服务的情况下完成无缝升级。通过示例代码和测试步骤,详细展示了 `endless` 包的工作原理和实际应用。
110 3
|
5月前
|
JSON Go UED
Go Web服务中如何优雅关机?
在构建 Web 服务时,优雅关机是一个关键的技术点,它确保服务关闭时所有正在处理的请求都能顺利完成。本文通过一个简单的 Go 语言示例,展示了如何使用 Gin 框架实现优雅关机。通过捕获系统信号和使用 `http.Server` 的 `Shutdown` 方法,我们可以在服务关闭前等待所有请求处理完毕,从而提升用户体验,避免数据丢失或不一致。
66 1
|
6月前
|
XML JSON 安全
定义Web服务
【10月更文挑战第18天】定义Web服务
134 12
|
5月前
|
XML 安全 PHP
PHP与SOAP Web服务开发:基础与进阶教程
本文介绍了PHP与SOAP Web服务的基础和进阶知识,涵盖SOAP的基本概念、PHP中的SoapServer和SoapClient类的使用方法,以及服务端和客户端的开发示例。此外,还探讨了安全性、性能优化等高级主题,帮助开发者掌握更高效的Web服务开发技巧。
|
6月前
|
前端开发 Java API
JAVA Web 服务及底层框架原理
【10月更文挑战第1天】Java Web 服务是基于 Java 编程语言用于开发分布式网络应用程序的一种技术。它通常运行在 Web 服务器上,并通过 HTTP 协议与客户端进行通信。
85 1

热门文章

最新文章