PayTM鱼叉式网络钓鱼漏洞分析与修复

本文详细分析了PayTM平台存在的敏感信息泄露漏洞,攻击者可通过未授权API查询获取用户注册邮箱,结合手机号实施精准鱼叉式网络钓鱼攻击,包含完整的技术细节和修复时间线。

鱼叉式网络钓鱼:PayTM的安全问题 | 网络罪与安全

网络罪与安全 - Rishi Narang的博客

在深入技术细节之前,我首先要确认该漏洞已被修复。感谢PayTM迅速采取行动。期待在安全问题上继续保持这样的快速响应。点赞!

请不要误解。我想分享一个攻击者可以利用的漏洞来实施/发起鱼叉式网络钓鱼攻击。讨论的网站是paytm.com。主站存在信息泄露漏洞,未认证用户可以通过手机号查询关联的邮箱地址。这意味着,如果你知道某人是paytm会员的手机号,你就可以在网站上找到他注册的邮箱地址。将这两个元素结合起来,你就可以向受害者发送定向邮件。让我们直接深入探讨。

paytm使用以下链接作为登录页面: URL: https://hub.paytm.com/user/authenticate

如你所见,有通过Facebook或手机号/邮箱地址登录的选项。如果你知道手机号,就有可能找到与该号码关联的邮箱地址。砰!现在,让我们从网站提取几个邮箱地址。

漏洞在于处理JSON响应。要启动此过程,我们将点击“忘记密码”。

这里你可以看到它要求“输入邮箱或手机”。让我们尝试输入一个邮箱地址’[email protected]’。瞧!我们得到以下消息,看到邮箱地址被****隐藏。这真的隐藏了吗?这意味着邮件已发送给相关用户。很好。GUI的胡言乱语到此为止,为什么不深入一些数据包的细节呢?

详情: 在这个数据包中,向主机hub.paytm.com的/api/users//checkemail发出了GET请求。该请求还携带两个(2)自定义头:X_PAYTMAPP_USERNAME(值:hub.paytm.com)和X_PAYTMAPP_KEY(从先前的响应页面提取)。

现在,checkemail请求的响应数据包如下所示:

响应数据包(HTTP)- 检查邮箱

详情: 这里你可以看到我们在响应中收到了一些有趣的信息, 允许的方法 - GET, POST, PUT, DELETE, OPTIONS(这不是太多引起关注吗?) 响应内容类型是来自nginx web服务器的application/json。

现在让我们检查响应的DATA字段: 状态:成功(希望查询成功完成) 代码:200(HTTP响应代码) 方法:check_email(查询的应用模块) 消息:邮箱已存在 email_exist: true(邮箱已存在) email_count: 15(这可能与此邮箱地址关联的手机号数量有关) verified_account: false(我认为此邮箱账户尚未验证)

因此,回复确实包含我们查询的信息。现在,让我们发布此请求/响应,另一个请求发送到’forget_password’模块。

请求数据包(HTTP)- 忘记密码

详情: 在这个数据包中,向/api/users/forgetPassword发送POST请求,数据字段为mobile=,以及带有自定义头(X_PAYTMAPP_USERNAME和X_PAYTMAPP_KEY)的常规cookie。这是对此的响应:

响应数据包(HTTP)- 忘记密码

好的!所以,在响应数据包中,我们可以看到它具有application/json的内容类型。此外,我们可以看到它回显了我们查询的邮箱地址。记住 - ‘忘记密码’也接受手机号。那么,这对手机号也有效吗?为了测试目的,假设用户的手机号是:9123456789(随机号码)。当我们输入此号码并检查时…瞧!它实际上存在于供应商处。

在消息中,它说 - 我们已向您的注册ID q****[email protected]发送了邮件。这样,邮箱地址不可见以进行提取。好主意。现在,让我们看看此请求的请求/响应数据包:

请求数据包(HTTP)- 检查手机号

详情: 在这个请求数据包中,如预期的那样,向/api/users//checkmobile发出GET请求。这与之前讨论的checkemail模块非常相似(与:/api/users//checkemail比较)。其余的头部/字段保持不变。

响应数据包(HTTP)- 检查手机号

详情: 在这个数据包中,我们收到验证消息(与checkemail相同)。此消息确保手机号存在于供应商处。此外,它说’手机号不可用’,但mobile_exists: true。其余部分,它回显号码。让我们看看当请求发送到forgetPassword模块时会发生什么。

请求数据包(HTTP)- 手机号 - 忘记密码

详情: 这是最重要的步骤。验证后,它向/api/users/forgetPassword发送POST请求,数据为mobile=。这也包含相同的自定义头/和cookie值。

响应数据包(HTTP)- 手机号 - 忘记密码

详情: @^%#WTF。所以,响应确实显示了用户的注册邮件地址。坏主意!这可以被利用来进行定向垃圾邮件。现在,通过这种错误配置和在线少量搜索,攻击者可以创建鱼叉式网络钓鱼邮件。以下是可以与从网站提取的特定详细信息(如’手机号’和’注册邮件地址’)一起使用的信息。

URL: hxxp://www.consumercomplaints.in/?search=paytm URL: hxxp://www.complaintboard.in/complaints-reviews/paytm-mobile-solutions-l120761.html

从这里提取有关手机号、订单号和日期等信息。找到注册的邮件地址,然后天啊!你绝对可以从伪造的域名和/或使用你的社会工程学技能欺骗用户。游戏结束。

这是我为此工作编写的一个小程序。以下是截图:

顺便说一句,对于那些不投票公开披露的人,我已经多次尝试联系paytm团队,但没有得到积极的回复或跟进。以下是我遵循的披露时间线简要:

20.07.2013:我通过联系我们页面与网站共享了第一级信息 27.07.2013:我开了一张票100794989(通过电子邮件发送至[email protected]) 28.07.2013:我收到了关于预计24小时内回电的回复 01.08.2013:我向同一电子邮件线程发送了最终消息,给了12小时的确认窗口 02.08.2013:公开披露 05.08.2013:已解决和修复(关闭)

就这样,伙计们。如果你不知道,不要点击,不要下载。保持安全,保持聪明!

$(‘head’).append(’’);

封面图片:MCGTEch Talk原创照片 网络钓鱼 错误配置 存档 « 上一篇 我收到了一封网络钓鱼邮件,我跟踪了它 下一篇 » 不要通过LinkedIN开放网络帮助垃圾邮件发送者。LION或Sheep © 2025 网络罪与安全。 向Astrid致敬以表支持。感谢Vimux提供Mainroad基础主题和Turtle Media提供徽标。用💛和Hugo制作。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计