挖洞經驗 | HackerOne的雙因素認證和上報者黑名單繞過漏洞($10,000)
大家好,今天我要和大家分享的是一個HackerOne相關的漏洞,利用該漏洞,我可以繞過HackerOne漏洞提交時的雙因素認證機制(2FA)和賞金專案中(Bug Bounty Program)的上報者黑名單限制。該漏洞嚴重性最終被定級為中級,漏洞原因為授權不當( Improper Authorization),賞金為$10,000美金。
漏洞說明
該漏洞是一個功能性Bug,最初上報給HackerOne時,他們給我設定的賞金是 $2,500,漏洞評級CVSS 5.0,但經HackerOne安全團隊對這個漏洞執行根本原因分析流程(Root Cause Analysis,RCA)之後,他們又基於我上報的這個漏洞,發現了另一個高危嚴重漏洞(CVSS 7.1),因此,HackerOne官方最終又額外獎勵了我$7,500美金。
漏洞發現
眾所周知,HackerOne是一個漏洞眾測網站,而我也經常在上面參與各個廠商的漏洞測試。通常,我總會留意HackerOne的一些新推出功能,某天,偶然間我就發現了其一個名為 ofollow,noindex" target="_blank">“嵌入式漏洞報告樣式”(Embedded Submission Form)的試用功能 ,利用該功能,白帽們可以:
1、利用其嵌入式提交指令碼,提供個人郵箱後,不用建立HackerOne賬號就可上報提交漏洞,之後HackerOne會向這個郵箱反饋具體的漏洞處理程序; 2、另外,如果不提供個人郵箱,就會被視為匿名漏洞提交,這種提交方式下,白帽們就不會獲得任何上報積分和賞金。匿名上報是該功能的一個選項。
大家可以點 此處官方說明檢視 Embedded Submission Form功能的具體使用方法。
圍繞該功能,我有了以下授權不當(Improper Authorization)的漏洞發現:
1、在上報提交某個廠商測試專案的漏洞時,可以利用“嵌入式漏洞報告樣式”(Embedded Submission Form)功能,在不開啟匿名上報時,繞過HackerOne對漏洞提交時的雙因素認證(2FA)條件限制,當然了繞過這個2FA限制,這個提交漏洞還是計為你的上報漏洞。具體的2FA設定可點此檢視; 2、可以繞過廠商漏洞測試專案的上報者黑名單限制。這裡的上報者黑名單,也就是說,如果某名白帽總是上報一些無關漏洞,或存在超出測試範圍或違反測試方法的行為,那麼測試廠商可以把這名白帽拉到黑名單中,就不會再收到該名白帽的上報漏洞了。這個上報者黑名單功能可點此檢視。
漏洞分析
繞過HackerOne對對漏洞提交時的雙因素認證(2FA)
通常,漏洞測試廠商在白帽們提交漏洞之前,可以強制漏洞提交者實行一個雙因素認證(2FA)校驗,URL樣式大概如此:
https://hackerone.com/ <program>/submission_requirements
具體設定如下:
像漏洞測試廠商 Parrot Sec的測試專案 ,在該功能下,就要求漏洞提交者在提交漏洞之前,執行一個雙因素認證(2FA)校驗步驟,即使我嘗試者在我自己的賬戶中禁用漏洞提交的2FA校驗操作,但是,最終也還是不行,這樣的話我會被Parrot Sec阻攔掉不能提交漏洞了,所以,必須得啟用2FA校驗操作。
現在,我們利用“嵌入式漏洞報告樣式”(Embedded Submission Form)功能,來嘗試看看是否能繞過這個漏洞提交的2FA校驗機制:
1、登入你自己的HackerOne賬戶,去掉你賬戶中的2FA校驗功能設定;
2、來到漏洞測試廠商Parrot Sec的賞金專案下 https://hackerone.com/parrot_sec ,點選提交漏洞(Submit Report),此時,因為你自己沒啟用2FA校驗功能,所以是不能提交漏洞的,只有啟用2FA校驗功能才能順利提交漏洞;
3、從Parrot Sec廠商的漏洞測試策略中,找到Embedded Submission Form相關的漏洞提交連結,其漏洞提交連結形如: https://hackerone.com/ <redacted_UUID>/embedded_submissions/new,其中的redacted_UUID為一串類似0a1e1f11-257e-4b46-b949-c7151212ffbb的串號數字。
4、在你的HackerOne賬戶登入狀態下,利用上述的Embedded Submission Form功能提交漏洞,然後就能不需要測試專案強制的2FA校驗要求了。後經測試,這種方式的漏洞提交,還能繞過測試專案中設定的漏洞提交頻率(Report Rate Limit)和內部功能濫用限制( Internal Abuse Limit)。
漏洞造成的影響:
白帽子們可以繞過漏洞測試專案中的2FA校驗、漏洞提交頻率和其它內部功能濫用限制,這種不當的授權操作,對廠商的漏洞處理形成干擾,也破壞了HackerOne平臺的嚴謹安全性。HackerOne安全團隊基於此發現的第二個漏洞比較嚴重,如果另一名白帽在此時正在編寫漏洞提交報告,那麼攻擊者可以訪問到其漏洞報告中的附件內容。
繞過漏洞測試專案的上報者黑名單限制
如果某名黑客的提交行為與測試專案中的策略不一致,或超出測試範圍,或違反測試方法,測試廠商可以把該名白帽拉入黑名單,禁止接收到其提交漏洞,當然還能在公開(Public)或私密(Private)專案中限制該名白帽。更多說明 點此檢視 。具體設定如下:
於是,我想到了我的朋友 Ace Candelario ,他是Parrot Sec公司的公司代表,也是Parrot Sec公司在HackerOne平臺的漏洞確認分類人。因此,我請求他在Parrot Sec測試專案後臺把我的HackerOne賬戶拉入黑名單,禁止我提交漏洞。之後,我點選提交漏洞就會出現以下錯誤頁面:
好吧,我已經成為了Parrot Sec漏洞測試專案的黑名單人員了。但是,當我用前述繞過2FA的方法步驟來嘗試時,我還是可以繼續向Parrot Sec提交漏洞!
漏洞影響:
一些惡意的白帽子們,在被拉入黑名單之後,還能以此繼續向測試廠商提交漏洞,對廠商的漏洞處理形成干擾,也破壞了HackerOne平臺的嚴謹安全性。
漏洞原因
經HackerOne安全團隊評估,以上兩個漏洞的觸發原因相同,都是由於在利用Embedded Submission Form功能編寫漏洞報告時,其中的除錯請求 uuid/embedded_submissions 中啟用了不安全的檢驗方法 interact_without_authorization, 這種情況下,後端的訪問控制列表機制(ACL)就會被繞過。
漏洞上報程序
2018.10.04 02:41:19 — 向HackerOne安全團隊提交漏洞 2018.10.05 20:07:59 — HackerOne確認並分類漏洞 2018.10.05 20:53:21 —HackerOne向我發放 $10,000美金賞金 2018.10.06 00:38:15 — CVSS 7.1的高危漏洞被及時修復,CVSS5.0漏洞正在修復中 2018.10.25 23:11:03 —CVSS5.0漏洞被修復 2018.10.25 23:11:03 —漏洞處理完成
更多技術資訊請參考 原漏洞報告 。
*參考來源: medium ,clouds編譯,轉載請註明來自FreeBuf.COM