微軟近期在其漏洞賞金計劃中向一名安全人員頒發了高達50000美元的獎金。如此“高貴”的漏洞不免讓人感到好奇。
據了解,該漏洞可以讓黑客在使用者不知情的情況下劫持使用者賬戶。也就是說,當你躺在床上舒舒服服睡個好覺的時候,黑客可能已經偷偷潛入了你的賬戶,并且通過賬戶掌握了你的個人資訊,用它進行金融交易、建立新帳戶、也可能向你的親人好友們進行詐騙,甚至進行更嚴重的違法活動。
雖然會造成嚴重影響,但該漏洞的利用原理卻并不複雜。發現它的安全人員指出,該漏洞可以在使用者重置密碼之前,強行猜測出向使用者的電子郵箱或者手機号碼發送的七位數密碼,進而對使用者賬戶進行通路。
然而對發送驗證代碼的HTTP POST請求進行分析後發現,密碼在發送前是加密的,這意味着如果要強行破解密碼,必須先破解加密。
截圖顯示,輸入的1234567代碼在請求中根本不存在。密碼被加密之後才發送驗證。這樣做的目的是為了防止自動破解工具利用他們的系統。是以,像Burp Intruder這樣的自動測試工具就無法使用,因為他們無法破解加密。
然而,雖然有旨在防止攻擊者自動重複送出所有1000萬個代碼組合的加密障礙和限速檢查,但該安全人員表示,他最終破解了該加密功能。
但是破解了加密功能,并不意味着攻擊一定能成功。事實上,測試顯示,在發送的1000個代碼中,隻有122個代碼能夠通過,其他代碼以錯誤代碼1211被阻止。
對此安全人員表示,如果所有發送的請求沒有同時到達伺服器,自帶的機制就會将IP位址列入黑名單。并且,請求之間的幾毫秒延遲就能讓伺服器檢測到攻擊并阻止它。
從攻擊範圍來看,雖然這種攻擊隻在賬戶沒有被雙因素認證保護的情況下有效,但它仍然可以擴充到擊敗兩層保護并修改目标賬戶的密碼。然而,在實際場景中,該攻擊的操作難度并不簡單,攻擊者必須同時發送安全碼,大約要進行1100萬次請求嘗試,才能更改任何微軟賬戶(包括那些啟用2FA的賬戶)的密碼。這樣一來,就需要大量的計算資源以及1000s的IP位址才能成功完成攻擊。
是以,這種攻擊的可行性并不高,普通的攻擊者很難滿足攻擊條件。
在安全人員向微軟報告了這個漏洞之後,微軟很快承認了這個問題,并在2020年11月進行了處理。