Google圖形驗證碼破解工具
Github: https://github.com/ecthros/uncaptcha
美國馬里蘭大學4名研究員近日發表一自動化系統
宣稱可破解由Google打造的語音版reCAPTCHA
準確率85.15%
以下取自該github的readme.md
解密
以 85% 的準確率擊敗 Google 的音頻 reCaptcha 系統。
免責聲明
unCaptcha 旨在成為概念證明。截至我們發表論文時,我們發現它以 85% 的成功率成功解決了 reCaptcha 的音頻挑戰。 從那時起,reCaptcha 似乎包含了一些限制 unCaptcha 成功的額外保護措施。 我們不會將此代碼維護為對 reCaptcha 的有效攻擊。
例如,谷歌還改進了他們的瀏覽器自動化檢測。這意味著 Selenium 在其當前狀態下無法用於從 Google 獲取驗證碼。這可能會導致 Google 將奇怪的音頻段發送回最終用戶。此外,我們觀察到一些音頻挑戰不僅包括數字,還包括口語文本的小片段。
我們鼓勵您在進行該領域的研究時要小心謹慎,注意當地、州和聯邦法律,並負責任地立即向 Google 披露任何潛在漏洞。
此外,我們已經從所有必要的查詢中刪除了我們的 API 密鑰。如果您希望重新創建某些工作或正在該領域進行自己的研究,您將需要從所使用的六種服務中的每一種獲取 API 密鑰。這些鍵在我們的文件中由字符“X”的長字符串描述。
靈感
在整個互聯網上,數十萬個站點依賴 Google 的 reCaptcha 系統來防禦機器人(事實上,Devpost 在創建新帳戶時使用 reCaptcha)。在 2012 年谷歌研究團隊證明文本 reCaptcha幾乎完全失敗後,reCaptcha 系統演變為依賴音頻和圖像挑戰,這是自動化系統在歷史上更難解決的挑戰。谷歌一直在不斷迭代其設計,最近就在今年發布了更新、更強大的版本。成功證明此驗證碼系統的失敗為數十萬個流行網站帶來了重大漏洞。
它能做什麼
我們的 unCaptcha 系統具有為音頻驗證碼編寫的攻擊能力。使用瀏覽器自動化軟件,我們可以與目標網站交互並使用驗證碼,解析出開始攻擊的必要元素。我們主要依靠音頻驗證碼攻擊——通過正確識別語音數字,我們可以以編程方式傳遞 reCaptcha 並欺騙網站,使其認為我們的機器人是人類。具體來說,unCaptcha 通過創建新用戶的動作來瞄準熱門網站 Reddit,儘管 unCaptcha 在創建用戶之前停止以減輕對 Reddit 的影響。
背景
Google 的 reCaptcha 系統使用高級風險分析系統以編程方式確定給定用戶是人類或機器人的可能性。它會考慮您的 cookie(以及您與其他 Google 服務的交互)、解決挑戰的速度、鼠標移動以及(顯然)您解決給定任務的成功程度。隨著系統變得越來越可疑,它提出了越來越困難的挑戰,並要求用戶解決更多問題。研究人員已經確定了 reCaptcha 系統的小弱點——與穀歌服務的 9 天合法(ish)交互通常足以顯著降低系統的懷疑水平。
這個怎麼運作
音頻驗證碼的格式是一系列不同長度的數字,它們通過背景噪音以不同的速度、音高和口音大聲朗讀。為了攻擊這個驗證碼,音頻有效載荷在頁面上被識別、下載並按語音位置自動分割。
從那裡,每個數字音頻比特被上傳到 6 個不同的免費在線音頻轉錄服務(IBM、Google Cloud、Google Speech Recognition、Sphinx、Wit-AI、Bing Speech Recognition),並收集這些結果。我們將這些結果中的每一個組合起來,以概率性地枚舉出最可能的數字串,並具有預先確定的啟發式。然後將這些數字有機地輸入到驗證碼中,驗證碼就完成了。從測試中,我們看到個人號碼識別的準確率超過 92%,完全擊敗音頻驗證碼的準確率超過 85%。
安裝
首先,安裝python依賴項:
$ pip install -r requirements.txt
確保您還安裝了 sox、ffmpeg 和 selenium!
$ apt-get install sox ffmpeg selenium
然後,啟動 PoC:
$ python main.py --audio --reddit
這將打開 reddit.com,與頁面交互以進行帳戶註冊,生成假用戶名、電子郵件、密碼,然後攻擊音頻驗證碼。一旦驗證碼完成(無論是否通過),瀏覽器就會退出。
了解更多
請閱讀我們位於此處的論文,了解更多信息。此外,您可以在此處訪問我們的網站,或查看原始.