任意使用者密碼重置(五):重置憑證可暴破
前言
在邏輯漏洞中,任意使用者密碼重置最為常見,可能出現在新使用者註冊頁面,也可能是使用者登入後重置密碼的頁面,或者使用者忘記密碼時的密碼找回頁面,其中,密碼找回功能是重災區。我把日常滲透過程中遇到的案例作了漏洞成因分析,這次,關注因重置憑證可暴破導致的任意使用者密碼重置問題。
密碼找回需要鑑別使用者的合法身份,證明你就是你,通常有兩種做法,一是網站將重置驗證碼發至使用者繫結的郵箱或手機號,使用者持重置驗證碼證明你就是你,二是使用者輸入密碼保護問題對應的答案。其中,驗證碼、密保答案就是重置密碼的重要憑證。有些網站生成四位數字的重置驗證碼,複雜度較低,[0000, 9999] 也就一萬種組合,在如今的計算能力和網路頻寬條件下,順手的工具三五分鐘的功夫就能列舉完。如果服務端又未設定驗證碼的存活有效期、未限制高頻訪問,那麼極易暴破。
案例一
密碼找回頁面 http://www.xxxx.com/find-pw.html 用攻擊者賬號 13908081024 進入密碼找回全流程,輸入圖片驗證碼、選擇手機找回、獲取簡訊驗證碼,發現簡訊驗證碼為 4 位數字且簡訊內容上未看到有效期資訊,所以,可暴破簡訊驗證碼,進行後續的重置流程。
用賬號列舉漏洞遍歷得到的普通手機號 13908093346 為例,進入密碼找回流程,提交簡訊驗證碼:
其中,1234 是我隨便輸入的錯誤的簡訊驗證碼,需要對 code 引數值進行暴破以找出正確的簡訊驗證碼。
具體而言,我將該請求中的 code 引數值定義為列舉變數、以 [0000, 9999] 為字典,設定 32 個執行緒進行暴破:
很快暴出簡訊驗證碼為 6909:
提交簡訊驗證碼後順利進入新密碼設定頁面,重置密碼設為 PenTest1024 後提交,服務端返回“修改成功”:
嘗試用 13908093346/PenTest1024 登入,驗證成功:
案例二
密碼找回頁面 http://xx.xxxx.com/xxxx/findpassword 用攻擊者賬號 13908081024 進入密碼找回全流程,輸入圖片驗證碼、選擇手機找回、獲取簡訊驗證碼,發現簡訊驗證碼為 4 位數字且簡訊內容上未告知有效期,所以,可暴破簡訊驗證碼,進行後續的重置流程。
用使用者名稱列舉得到的普通手機號 15012804897 為例,進入密碼找回流程,提交簡訊驗證碼:
其中,1234 是我隨便輸入的錯誤的簡訊驗證碼,需要對 auto 引數進行暴破以找出正確的簡訊驗證碼:
很快暴出簡訊驗證碼為 9997,輸入後進入新密碼提交頁面,重置密碼為 PenTest1024 後提交:
嘗試用 15012804897/PenTest1024 登入,驗證成功:
加固措施
密碼重置憑證強度提高,建議六位數字,有效期十分鐘,並且驗證碼應校驗一次後立即作廢。另外,服務端應限制列舉等惡意請求。
相關文章
- 任意使用者密碼重置(二):重置憑證接收端可篡改密碼
- 任意使用者密碼重置(一):重置憑證洩漏密碼
- 任意使用者密碼重置(三):使用者混淆密碼
- 重置PbootCMS使用者密碼boot密碼
- Ubuntu重置root密碼Ubuntu密碼
- centos 7 重置密碼CentOS密碼
- MySQL 重置Root密碼MySql密碼
- mysql 8 如何重置 root 使用者密碼MySql密碼
- MySQL 8 下重置密碼MySql密碼
- MySQL 8.0 重置 root 密碼MySql密碼
- linux重置寶塔密碼Linux密碼
- CentOS 7.5 重置 root 密碼CentOS密碼
- Django搭建個人部落格:重置使用者密碼Django密碼
- Microsoft.AspNet.Identity 重置密碼ROSIDE密碼
- 邏輯漏洞之密碼重置密碼
- MySQL 資料庫重置密碼MySql資料庫密碼
- laradock 重置 portainer 密碼的方法AI密碼
- Oracle 重置密碼及基本操作Oracle密碼
- mac版MySQL重置初始密碼MacMySql密碼
- Mac下MySQL密碼重置方法MacMySql密碼
- phpMyAdmin重置WordPress管理員密碼PHP密碼
- PbootCMS忘記密碼後的重置密碼流程boot密碼
- 群暉NAS忘記密碼如何重置密碼密碼
- Azure VM域控密碼重置方法密碼
- MySQL 8.0.15忘記密碼重置方法MySql密碼
- rocky9如何重置root密碼密碼
- centos7的root密碼重置CentOS密碼
- ubuntu 雲映象預設密碼重置Ubuntu密碼
- 任意使用者密碼重置(六):應答中存在影響後續邏輯的狀態引數密碼
- Win10 1909系統如何重置開機密碼_Win10 1909開機密碼重置方法Win10密碼
- mysql5.7重置root密碼MySql密碼
- linux破解root登入密碼,並重置Linux密碼
- Tool-Gitlab-重置root賬戶密碼Gitlab密碼
- Laravel 重置密碼傳送郵件分析Laravel密碼
- 如何在Mac上重置MySQL根密碼MacMySql密碼
- 在Linux中,如何重置 mysql root 密碼?LinuxMySql密碼
- 09 MySQL系統賬戶密碼重置MySql密碼
- vmware虛擬機器linux重置密碼虛擬機Linux密碼