暴力破解產生是由于服務器沒有對接收的參數進行限制,導致攻擊者可以通過暴力手段進行破解所需要的信息(如賬號,密碼,驗證碼等)
暴力破解的原理就是窮舉法,其基本思想是根據部分條件確定已知條件的大致范圍,并在此范圍內對所有可能的情況逐一驗證,直到全部情況驗證完畢
0xx1 暴力破解分類
1. B/S架構
B/S架構即瀏覽器/服務器結構(以WEB應用為例)
a) 一般目標為后臺管理員頁面
b) 對B/S架構進行破解常用BurpSuite等工具
2. C/S架構
C/S架構即客戶端/服務器結構(以數據庫為例)
a) 數據庫一般都有最高權限賬戶,如MySQL的root賬戶,Oracle的System賬戶
b) 對C/S架構進行破解常用Hydra,,Medusa等工具
0xx2 暴力破解前提:
1. B/S架構
a) 前端
i. 頁面存在明文傳輸并且未加密
ii. 頁面無驗證碼或驗證碼可繞過
b) 后臺
i. 未對用戶登錄次數進行限制
c) 用戶
i. 密碼過于簡單
2. C/S架構
a) 密碼過于簡單
b) 沒有登錄失敗鎖定策略
0xx2 暴力破解方式
1. B/S架構
a) 首先,將BurpSuite抓到的包發送到Intruder模塊
b) 在Positions選項卡中配置爆破方式以及爆破位置
c) 在Payload選項卡中設置Payload并添加字典
d) 通過綜合對比Status和Length來確定是否爆破成功
2. C/S架構
a) hydra [[[-l LOGIN|-L FILE] [-p PASS|-P FILE]] | [-C FILE]] [-e nsr] [-o FILE] [-t TASKS] [-M FILE [-T TASKS]] [-w TIME] [-W TIME] [-f] [-s PORT] [-x MIN:MAX:CHARSET] [-SuvVd46] [service://server[:PORT][/OPT]]
b) medusa [-h 主機| -H 文件] [-u 用戶名| -U 文件] [-p 密碼| -P 文件] [-C 文件] -M 模塊[OPT]
0xx3 暴力破解參數
1. BurpSuite
2. Medusa
3. Hydra
0xx4 暴力破解思路
1. 可以對動態驗證碼進行爆破,使用驗證碼(手機或郵箱等)登錄其他人賬號或注冊賬號
2. 可以從密碼找回處探測可能存在的用戶名,從而進行密碼爆破
3. 當存在限制登錄次數時,可以使用多個用戶名和密碼交叉爆破進行登錄
4. 可以使用弱密碼(包括但不限于弱口令)撞用戶名進行登錄
0xx5 防止暴力破解
1. 前端
a) 不使用明文傳輸
b) 對傳輸內容進行加密(包括,但不限于賬號,密碼,驗證碼等)
c) 使用高級驗證碼進行登錄驗證(比如圖形驗證碼)
2. 后臺
a) 對用戶輸入錯誤密碼次數進行限制
b) 對嘗試多次登錄并且登錄失敗的IP進行封禁
3. 用戶
a) 不使用弱口令密碼