如何使用WhatsApp收集大量数据(附脚本)

简介:
+关注继续查看

如果你想要拿到所有WhatsApp用户的手机号码、头像、以及状态信息,那么我告诉你,这其实是一件非常简单的事情,而且这些用户甚至都不需要将你添加到他们的通讯录里面。

安全

大概在几年之前,WhatsApp开始允许我们在Web浏览器中使用WhatsApp了。这是一种提升用户体验度的绝佳方法,因为与那手机屏幕里还没巴掌大的九宫格键盘相比,使用键盘来输入信息会更加的方便,而且复制粘贴或者添加附件也非常的简单。虽然优点如此之多,但缺点也肯定会有。坏消息就是,从技术角度出发,我们将有可能利用WhatsApp的Web接口来创建一个庞大的WhatsApp用户数据库。需要注意的是,可能只有一小部分用户不会受到影响:即那些没有修改隐私设置的用户(但WhatsApp并不鼓励这种不修改隐私设置的行为)。接下来,我会给大家演示如何利用WhatsApp的API接口来收集大量有趣的用户信息。

如何利用WhatsApp的API接口来收集大量有趣的用户信息

简单介绍

Web版WhatsApp需要通过用户的手机号来与WhatsApp服务器进行连接。简而言之,也就是浏览器只需要根据一个特定的手机号就能让后台服务器返回所有与该手机号有关的信息。可能返回的信息如下:

  • 用户头像;
  • 与用户状态相关的文本信息,例如“嗨,我正在使用WhatsApp”等等;
  • 用户当前的在线/离线状态;

我们发现,上述这些信息是可以通过手机号来请求获取的。也就是说,这个手机号所对应的WhatsApp是否将你添加为好友其实并不重要。因为这种通过手机号来请求用户信息的操作不会受到任何的限制,所以我们就可以创建一个完整的WhatsApp用户数据库,然后保存用户的手机号码、用户头像、状态文本信息、以及在线/离线状态。我们可以通过这些信息构建出一个与用户手机号相关的完整时间轴,而这个时间轴可以告诉我们用户的上线与离线时间。

上线与离线时间

目前,几乎所有的网站在用户浏览器中呈现内容时,都包含有一种特殊的程序来决定网站的功能及表现形式,这种特殊的程序就是我们所说的JavaScript代码,这些JS代码决定了用户在点击某个按钮或移动鼠标时网站应该产生怎样的动作。除此之外,它们也可以与服务器进行连接,并请求某些类型的数据。当然了,Web端WhatsApp也不例外。它会向WhatsApp的后台服务器发送一个手机号码,几毫秒之后它便会收到有关这个手机号码的信息。对于我们来说,这种JavaScript程序的好处就是任何人都可以查看到它的源代码,而且我们还可以将其用于其他的地方。我正是利用了这种可能性开发出了一个脚本,这个脚本可以向服务器请求大量手机号码所对应的账号信息,更加重要的是,任何一个人都可以编写出这样的一种脚本。下面这张图片显示的是我的脚本请求的400个随机手机号所对应的信息:

隐私方面的担忧

那么,当我们拿到这些信息之后,我们能做些什么呢?首先你要知道的是,任何人都可以创建出这样的一种数据库,我们不仅可以知道一个用户(手机号)何时上线下线,而且还可以知道某个用户头像所对应的手机号码。接下来我跟大家说一个最贴近实际的使用场景。面部识别技术想必大家都听说过吧?这项技术近几年已经发展得很不错了,你可以设想一下,当你走在街上看见了一个美女(或帅哥),然后偷偷拍了一张TA的照片,而现在你只需要将这个照片放到数据库中进行比对,你就可以拿到TA的手机号了。如果这是一个你所讨厌的人,那么你还可以利用TA的照片、手机号、以及其他的信息并通过面部识别系统来登录TA的某些在线服务。是不是很简单呢?这就是我对WhatsApp这个问题所产生的担忧。

WhatsApp给出的回应

我非常支持“负责任的漏洞披露”,所以当我发现了这个漏洞之后,我便立刻与Facebook(因为WhatsApp是Facebook旗下的产品)取得了联系。总而言之,他们已经意识到了这件事情(有可能收集到大量用户数据),但是他们并不认为这个问题与用户隐私有关。他们给出的回复如下:

WhatsApp给出的回应

虽然他们的回复看起来也没什么问题,而且我自己甚至差点都被他们说服了。但是冷静下来仔细想想,总是感觉怪怪的…

技术分析

不建议非技术人员阅读这部分内容,因为你们可能会看不懂…

Web端WhatsApp使用了一个文档中没有提到的API,你可以随意使用这个API,但你首先得自己弄清楚怎么去使用它。这里,JavaScript API在与WhatsApp服务器进行通信时使用了一个WebSocket。

JavaScript API在与WhatsApp服务器进行通信时使用了一个WebSocket

我在我的脚本中使用了三个API,第一个是Store.ProfilePicThumb.find( ),我用它来收集用户头像。你可以这样使用它:

Store.ProfilePicThumb.find()

请注意,你必须在Web端WhatsApp所运行的同一标签中发送请求,你还需要在页面DOM中添加一个元素。

第二个API是Store.Wap.statusFind( ):它可以收集手机号所对应的文本信息:

Store.Wap.statusFind()

第三个API是Store.Presence.find( ),它可以用来请求用户的在线/离线状态:

Store.Presence.find()

通过将这些API调用放到一个循环中,我们就可以不断向服务器请求信息了。

脚本下载

下载地址

注:请不要将其用于非法目的!

作者:Alpha_h4ck
来源:51CTO

相关文章
|
8天前
|
Android开发 iOS开发 开发者
uniapp开发App从开发到上架全过程
当我们的APP开发完毕,最终交付的时候,必然要经历的一个环节,就是APP上架,国内APP上架一般为IOS端appstore上架,安卓端应用商店比较多,最常见的应用商店有华为应用商店、小米应用商店、OPPO应用商店、VIVO应用商店、应用宝应用商店等。
|
18天前
|
移动开发 Android开发 iOS开发
uniapp开发H5及app监听返回事件(以及监听不到的处理方法)
uniapp开发H5及app监听返回事件(以及监听不到的处理方法)
27 0
|
23天前
|
JavaScript 前端开发 PHP
用swift开发ios移动端app应用初体验
直接跟着 apple 官方的 SwiftUI 教程跑的,写惯了 javascript 奔放的代码,很多语法理解起来还是有点费劲
31 1
|
25天前
|
Java 关系型数据库 MySQL
“老年养生”APP的设计与开发
“老年养生”APP的设计与开发
|
26天前
|
API 数据安全/隐私保护 iOS开发
 利用uni-app 开发的iOS app 发布到App Store全流程
首次提交关于App Store上架步骤流程:兼容检查 -> 账号申请 -> 证书申请 -> 发布准备 -> App Store上架 -> 审核后续提交审核iOS审核团队联系方式;
|
29天前
|
安全 数据安全/隐私保护 iOS开发
【iOS开发】iOS App的加固保护原理:使用ipaguard混淆加固 摘要
随着智能手机的普及,越来越多的用户使用iOS设备来处理日常任务,因此iOS应用程序的安全性变得越来越重要。为了防止应用程序被攻击或破解,开发人员需要采用一些保护措施来加固应用程序。本文将介绍一种使用ipaguard混淆加固的方法来保护iOS应用的安全。
|
1月前
|
iOS开发 开发者
iOS开发:如何进行App备案并查看SHA-1值?
在移动应用程序的开发和发布过程中,进行App备案是确保应用符合相关法规的重要一步。SHA-1值是应用与第三方服务进行集成时必须提供的信息。本教程将详细介绍如何进行App备案,并查看iOS应用的SHA-1值。
|
2月前
|
安全 搜索推荐 数据挖掘
电商类app开发定制,电商app制作开发
在电商行业的蓬勃发展下,越来越多的企业和个体商户开始向移动化方向转型,希望借助电商App提升销售额和用户粘性。然而,纷繁复杂的电商App市场,如何设计出一个功能强大又符合自身需求的电商App成为了迫切需要解决的问题。
|
2月前
|
Linux C++
linux系统中使用QT实现APP开发的基本方法
linux系统中使用QT实现APP开发的基本方法
39 0
相关产品
云迁移中心
推荐文章
更多