绕过雷蛇官网的动态验证码

news/2025/3/5 4:44:01/

在这里插入图片描述

大家好,我是@dhakal_ananda,来自尼泊尔,这是我在Hackerone上参加的雷蛇漏洞悬赏项目的一部分。一开始这个漏洞悬赏项目是一个非公开项目,我接到邀请后并没有参加;后来它变成了公开项目,我反而对它起了兴趣。

在挖掘漏洞时,我更喜欢绕过各种安全功能(例如二次验证),而不是挖掘普通的XSS和SQL漏洞,于是我很快开始尝试绕过动态密码,因为它在你每次执行敏感操作时都会出现。

在这里插入图片描述

在进行了几次测试后,我发现目标应用会使用一个很长的令牌来标记是否输入了动态密码。只有输入有效的动态密码,才提供令牌。

那么我们能做些什么来绕过动态密码亦或是令牌的限制呢?我很快就想到,不同用户之间的令牌是否能通用?于是我进行了简单的尝试,发现确实有效。

复现步骤

  1. 登录攻击者的账户

  2. 转到[https://razerid.razer.com/account](https://razerid.razer.com/account),修改电子邮件地址

  3. 你将看到弹出一个对话框,提示需要输入动态密码

  4. 输入有效动态密码,再用BurpSuite拦截住更改电子邮件的最后请求

  5. 将请求发送到BurpSuite的Repeater中

  6. 此时登录受害者帐户(假设你有受害者帐户密码)

  7. 更改名称,拦截住相关请求

  8. 复制请求中的user_iduser_token,将其保存到文件中

  9. 转到BurpSuite拦截的攻击帐户更改电子邮件的请求中,将该请求中的user_iduser_token替换为受害者帐户的user_iduser_tokenuser_token和动态密码产生的令牌并不一样)

  10. 最后提交修改后的请求,查看受害者帐户绑定的电子邮件地址是否为攻击者所控制的电子邮件地址。

POST /api/emily/7/user-security/post HTTP/1.1
Host: razerid.razer.com
Connection: close
Content-Length: 260
Accept: application/json, text/plain, */*
Origin: https://razerid.razer.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36
DNT: 1
Sec-Fetch-Mode: cors
Content-Type: application/json;charset=UTF-8
Sec-Fetch-Site: same-origin
Referer: https://razerid.razer.com/account/email
Accept-Encoding: gzip, deflate
Accept-Language: en-GB,en-US;q=0.9,en;q=0.8
Cookie: ...
{"data":"<COP><User><ID>user_id</ID><Token>user_token</Token><OTPToken>otp_token_value_here</OTPToken><login><email>attacker-email@example.com</email><method>add</method><primary>1</primary></login></User><ServiceCode>0060</ServiceCode></COP>"}

需要说明的是,在和雷蛇官网交互的过程中,和身份验证有关的有三个字段,它分别为user_iduser_tokenOTP_token。其中OTP_token只有在输入动态密码的情况下才能获得。而雷蛇网站缺乏对令牌OTP_token的身份控制,只是验证了其有效性,导致所有的帐户都能利用同一个帐户的OTP_token绕过动态密码验证。

我把报告写的很详细,提交给雷蛇,但雷蛇的审核人员居然认为这个漏洞需要物理接触受害者的机器才能进行?

在这里插入图片描述

在这里插入图片描述

在经过长时间的扯皮后,雷蛇表示,他们提供一个测试帐号,如果我能更改帐号绑定的电子邮件地址,就认同我的漏洞。

很快,我就把这个帐号和我的电子邮件地址绑定在一起。雷蛇最后也给了我1000美元的漏洞奖励。

在这次经历后,我又找到了另一个动态密码绕过漏洞,在雷蛇修复后将会对外公开。

本文由白帽汇整理并翻译,不代表白帽汇任何观点和立场:https://nosec.org/home/detail/3056.html
来源:https://medium.com/@anandadhakal13/how-i-was-able-to-bypass-otp-token-requirement-in-razer-the-story-of-a-critical-bug-fc63a94ad572

http://www.ppmy.cn/news/561901.html

相关文章

铸博皇御:炒黄金入门这几点别忽略

炒黄金和投资股票一样&#xff0c;也是一种高风险回报大的投资方式。但无论如何&#xff0c;新手投资黄金须谨慎&#xff0c;一定要做好风险抵抗。那么&#xff0c;炒黄金入门需要注意哪几点呢&#xff1f; 任何投资都需要遵循一定的规律&#xff0c;开始以为很简单&#xff0c…

自媒体应该怎么入门,这几点教会你

2022年了&#xff0c;才开始做自媒体还来得及吗&#xff1f;答案是一定来得及&#xff0c;现在自媒体发展相对来说是比较成熟的阶段&#xff0c;那么自媒体新手应该怎么入门&#xff0c;下面这几点教会你&#xff01; 1、了解各平台机制 每个平台的机制是不同的&#xff0c;选…

7-6 然后是几点(15 分)

7-6 然后是几点&#xff08;15 分&#xff09; 有时候人们用四位数字表示一个时间&#xff0c;比如1106表示11点零6分。现在&#xff0c;你的程序要根据起始时间和流逝的时间计算出终止时间。 读入两个数字&#xff0c;第一个数字以这样的四位数字表示当前时间&#xff0c;第二…

java定时执行(设置每天几点执行一次)

今日收获 理解并学习了如何使用定时器完成设置每天早上八点程序执行一次 可自行扩展&#xff1a; public void TimerTaskTest{ // 创建一个定时器任务TimerTask timerTask new TimerTask() {Overridepublic void run() {/*写业务逻辑主体system.out.prinln("早上…

区块链的几点理解

以 比特币 为例进行说明 1. 交易的双方以id为基础进行交易&#xff0c; 不是以姓名等的进行&#xff0c;使双方的重要信息不会被外界所知。目前很多应用&#xff0c;比如病人的病历是可已被研究的&#xff0c;但是病人的信息是隐私不能被暴露的。 2. 信用去中心化&#xff0c…

现在时间是 a 点 b 分,请问 t 分钟后,是几点几分?

题目要求&#xff1a; 输入格式   输入的第一行包含一个整数 a。   第二行包含一个整数 b。   第三行包含一个整数 t。 输出格式   输出第一行包含一个整数&#xff0c;表示结果是几点。   第二行包含一个整数&#xff0c;表示结果是几分。 样例输入   3   20 …

7-16 然后是几点(15 分)

7-16 然后是几点&#xff08;15 分&#xff09; 有时候人们用四位数字表示一个时间&#xff0c;比如1106表示11点零6分。现在&#xff0c;你的程序要根据起始时间和流逝的时间计算出终止时间。 读入两个数字&#xff0c;第一个数字以这样的四位数字表示当前时间&#xff0c;第二…

如何找论文的创新点

写大论文最关键的就是要找到创新点&#xff0c;而最伤脑筋的是如何才能找到创新点。最近看到许多同学为了找到大论文中的创新点是殚精竭虑&#xff0c;每天在教研室是如坐针毡&#xff0c;非常的痛苦。我个人觉得&#xff0c;创新点就像是机遇一样&#xff0c;说来就来&#xf…