繞過雷蛇官網的動態驗證碼

 
 
 

 

 

你們好,我是@dhakal_ananda,來自尼泊爾,這是我在Hackerone上參加的雷蛇漏洞懸賞項目的一部分。一開始這個漏洞懸賞項目是一個非公開項目,我接到邀請後並無參加;後來它變成了公開項目,我反而對它起了興趣。html

在挖掘漏洞時,我更喜歡繞過各類安全功能(例如二次驗證),而不是挖掘普通的XSS和SQL漏洞,因而我很快開始嘗試繞過動態密碼,由於它在你每次執行敏感操做時都會出現。json

 

在進行了幾回測試後,我發現目標應用會使用一個很長的令牌來標記是否輸入了動態密碼。只有輸入有效的動態密碼,才提供令牌。api

那麼咱們能作些什麼來繞過動態密碼亦或是令牌的限制呢?我很快就想到,不一樣用戶之間的令牌是否能通用?因而我進行了簡單的嘗試,發現確實有效。安全

復現步驟

  1. 登陸攻擊者的帳戶
  2. 轉到https://razerid.razer.com/account,修改電子郵件地址
  3. 你將看到彈出一個對話框,提示須要輸入動態密碼
  4. 輸入有效動態密碼,再用BurpSuite攔截住更改電子郵件的最後請求
  5. 將請求發送到BurpSuite的Repeater中
  6. 此時登陸受害者賬戶(假設你有受害者賬戶密碼)
  7. 更更名稱,攔截住相關請求
  8. 複製請求中的user_id和user_token,將其保存到文件中
  9. 轉到BurpSuite攔截的攻擊賬戶更改電子郵件的請求中,將該請求中的user_id和user_token替換爲受害者賬戶的user_id和user_token(user_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":"user_iduser_tokenotp_token_value_hereattacker-email@example.comadd10060"}

須要說明的是,在和雷蛇官網交互的過程當中,和身份驗證有關的有三個字段,它分別爲user_id、user_token和OTP_token。其中OTP_token只有在輸入動態密碼的狀況下才能得到。而雷蛇網站缺少對令牌OTP_token的身份控制,只是驗證了其有效性,致使全部的賬戶都能利用同一個賬戶的OTP_token繞過動態密碼驗證。app

我把報告寫的很詳細,提交給雷蛇,但雷蛇的審覈人員竟然認爲這個漏洞須要物理接觸受害者的機器才能進行?cors

 

 

 

在通過長時間的扯皮後,雷蛇表示,他們提供一個測試賬號,若是我能更改賬號綁定的電子郵件地址,就認同個人漏洞。post

很快,我就把這個賬號和個人電子郵件地址綁定在一塊兒。雷蛇最後也給了我1000美圓的漏洞獎勵。測試

在此次經歷後,我又找到了另外一個動態密碼繞過漏洞,在雷蛇修復後將會對外公開。網站

本文由白帽彙整理並翻譯,不表明白帽匯任何觀點和立場ui

來源: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

相關文章
相關標籤/搜索