摘要:
需下載的資源:
pikachu源碼下載地址:http://github.com/zhuifengshaonianhanli/pikachu
實驗環境介紹:
本地搭建 在集成環境phpStudy下,將pikachu源碼放在WWW文件夾中,打開瀏覽器url中輸入:http://127.0.0.1/pikachu-master/即可。
主要工具:burp suite
【
Burpsuite介紹:
一款可以進行再WEB應用程序的集成攻擊測試平台。
常用的功能:
抓包、重放、爆破
】
配置完畢進入頁面顯示:
然后就可以開始學習了!
目錄:
簡介:
"暴力破解”是一攻擊具手段,在web攻擊中,一般會使用這種手段對應用系統的認證信息進行獲取。 其過程就是使用大量的認證信息在認證接口進行嘗試登錄,直到得到正確的結果。 為了提高效率,暴力破解一般會使用帶有字典的工具來進行自動化操作。
理論上來說,大多數系統都是可以被暴力破解的,只要攻擊者有足夠強大的計算能力和時間,所以斷定一個系統是否存在暴力破解漏洞,其條件也不是絕對的。 我們說一個web應用系統存在暴力破解漏洞,一般是指該web應用系統沒有采用或者采用了比較弱的認證安全策略,導致其被暴力破解的“可能性”變的比較高。 這里的認證安全策略, 包括:
1.是否要求用戶設置復雜的密碼;
2.是否每次認證都使用安全的驗證碼(想想你買火車票時輸的驗證碼~)或者手機otp;
3.是否對嘗試登錄的行為進行判斷和限制(如:連續5次錯誤登錄,進行賬號鎖定或IP地址鎖定等);
4.是否采用了雙因素認證;
…等等。
千萬不要小看暴力破解漏洞,往往這種簡單粗暴的攻擊方式帶來的效果是超出預期的!
基於表單的暴力破解:
進入暴力破解的子選項:基於表單的暴力破解。我們可以看到如下界面
步驟一:將瀏覽器的連接設置設置為手動配置代理,端口號8080,將不使用代理清空
步驟二:.在輸入框隨意輸入用戶名和密碼,然后抓包,點擊send to intruder
步驟三:查看HTTP history,確認抓到包
步驟四:將正確的抓包發送給Intruder
步驟五:在intruder頁面中,點擊positions,配置變量。先點擊clear $清除變量,然后選中用戶名和密碼,點擊add $添加變量,攻擊方式為 cluster bomb
步驟六:點擊payloads,配置字典。
payload set對指定變量設置。
payload type指定payload類型,這里選擇simple list。
選擇payload set 1在payload options中添加列表,這里演示所以添加少量,同樣在payload set 2添加密碼列表。然后點擊start attack。
步驟七:開始破解
最后根據Length的值不同,可找到正確數據
步驟八:驗證一下
驗證碼繞過(on server)
驗證碼可以用來防止惡意注冊、防止暴力破解。服務端驗證碼常見問題:
- 驗證碼在后台不過期,導致長期可以使用
- 驗證碼校驗不嚴格,邏輯出現問題
- 驗證碼設計的太過簡單和有規律,容易被猜解
我們先簡單的測試一下,不輸入驗證碼的情況下會提示驗證碼為空,輸入錯誤驗證碼的情況下會提示驗證碼錯誤,只有驗證碼正確的前提下才會提示賬號或密碼不存在。
下面通過抓包判斷一下服務器端有沒有對驗證碼進行驗證,發現是有的
說明后端對驗證碼是有驗證的,我們來了解一下驗證碼生成的邏輯:
當我們刷新頁面的時候,我們會向后台發送一個請求,后台收到請求會生成一個驗證碼並在session中把驗證碼保存下來。
我們先生成一個新的驗證碼,輸入正確的驗證碼,查看源碼:
顯示賬號和密碼不存在,我們換個密碼在輸入一次
發現依然是提示賬號密碼不存在,正常來說應該提示驗證碼錯誤,這說明驗證碼長期有效,我們發送到Intruder中直接暴力破解 ,步驟與基於表單的暴力破解一樣,在這里我就不再截圖了。
然后驗證登陸就行。
驗證碼繞過(on client)
這里我們需要輸入驗證碼,我們不能對驗證碼暴力破解,通過抓包發現請求里面只是多了驗證碼
通過BurpSuite發現后台不會對輸入錯誤的驗證碼進行驗證,在瀏覽器中,輸入錯誤的驗證碼是有提示的,說明前端設置的驗證碼如同虛設,后端不會對驗證碼進行驗證。那么我們不用理會驗證碼,直接進行暴力破解就可以了,步驟如上
token防爆破
利用開發者工具可以發現這里有一個隱藏的標簽
里面的數字就是我們的token,我的每次提交的請求都會有一個token值,后端會驗證這個token值
具體步驟:
我們把token設置變量,options的grep extract添加token:
token變量的type設置成recursive grep
設置跟隨重定向,方法如下:options->redirection設置為always
然后Start attack,破解