Burpsuite是一個功能強大的工具,也是一個比較復雜的工具
本節主要說明一下burp的intruder模塊中的2個技巧
1、md5加密
我們在payload Processing中的add選項可以進行選擇,Hash加密,md5的加密方式,進行md5進行解密
2、利用漏洞中驗證碼繞過的小技巧
1. 驗證碼不刷新
導致驗證碼不刷新的原因是:登錄密碼錯誤之后,session中的值沒有更新,驗證碼不變。驗證碼不刷新通常有以下兩種情況:無條件不刷新、有條件不刷新。
1.1無條件不刷新
無條件不刷新是指在某一時間段內,無論登錄失敗多少次,只要不刷新頁面,就可以無限次的使用同一個驗證碼來對一個或多個用戶帳號進行暴力猜解。
1.2有條件不刷新
有條件不刷新多見於如下情況:登錄失敗之后,系統會打開一個新頁面或者彈出一個新的警告窗口,提示用戶登錄失敗,點擊確定后返回登錄界面且驗證碼刷新。這種情況下,只要我們不關閉新窗口或彈窗,配合使用Burpsuite的intruder模塊就可以進行暴力破解了。
2.驗證碼前端可獲取
這種情況在早期的一些網站中比較常見,主要是因為程序員在寫代碼的時候安全意識不足導致的。驗證碼通常會被他們隱藏在網站的源碼中或者高級一點的隱藏在請求的Cookie中,但這兩種情況都可以被攻擊者輕松繞過。
2.1驗證碼隱藏在源碼中
驗證這種情況很簡單,我們只需要記住驗證碼,然后右鍵打開網站源代碼,Ctrl+F搜索,輸入剛才的驗證碼,如果可以成功匹配到,那恭喜你,接下來就可以寫工具,提取源碼中的驗證碼並將其放入每次請求的報文中,來進行帳號破解,這里推薦使用python。
2.2驗證碼隱藏在Cookie中
這種情況,我們可以在提交登錄的時候抓包,然后分析一下包中的Cookie字段,看看其中有沒有相匹配的驗證碼,或者是經過了一些簡單加密后的驗證碼。
3. 驗證碼空值繞過
驗證碼空值繞過,是在日常的滲透測試中很容易被我們忽略的一點,實際應用中我們可以通過直接刪除驗證碼參數或者Cookie中的一些值來繞過判斷,進行暴力破解。
4. 驗證碼易識別
在平常的漏洞挖掘過程中,如果我們發現登錄的驗證碼非常簡單且易於識別,那我們就可以嘗試使用自動化工具來進行登錄破解了,如PKAV的HTTP Fuzzer。
5. 存在無驗證碼頁面
經過測試,如果我們發現網站驗證碼自身並不存在缺陷,那我們接下來就可以嘗試尋找一些其他的登錄頁面或接口來嘗試暴力破解。
5.1隱藏的頁面
這種頁面通常是留給測試人員使用的,或者是一些忘記刪除的老界面,利用的前提是該界面依舊可用,一般情況下,我們可以通過掃描器來發現這種頁面。
5.2 微信公眾號、APP登錄頁面
很多網站的web登錄頁面已經做的相當完善了,但是卻在微信公眾后的綁定接口或者是APP的登錄界面上面栽了跟頭,在滲透測試的過程中,一定不要忘了對公眾號和APP的測試。
6. 其他繞過方法
6.1萬能驗證碼
滲透測試的過程中,有時候會出現這種情況,系統存在一個萬能驗證碼,如000000,只要輸入萬能驗證碼,就可以無視驗證碼進行暴力破解。
6.2驗證碼無效
這種情況下,無論我們輸入什么數據,驗證碼都會判斷通過,驗證碼形同虛設,這種情況我只遇到過一次。
6.3驗證碼數量有限
多見於計算類型的驗證碼,如1+8=?,這種類型的驗證碼嚴格意義上來說不能叫做驗證碼,多刷新幾次驗證碼,我們可能會發現系統中的算數題目只有那么幾道,這種情況下只要將驗證碼全部下載下來,生成一個md5庫,然后將前端生成的驗證碼與本地文件進行對比即可。
3、繞過驗證碼
方法1:
說起對存在驗證碼的登錄表單進行爆破,大部分人都會想到PKav HTTP Fuzzer,這款工具在前些年確實給我們帶來了不少便利。
反觀burp一直沒有一個高度自定義通殺大部分圖片驗證碼的識別方案,這里我查到captcha-kille(https://github.com/c0ny1/captcha-killer)工具,希望burp也能用上各種好用的識別碼技術。
其設計理念是只專注做好對各種驗證碼識別技術接口的調用!
說具體點就是burp通過同一個插件,就可以適配各種驗證碼識別接口,無需重復編寫調用代碼。
我們可以去github 下載 captcha-killer.jar 擴展,然后加載到burp中,各種調試成功試別爆破后就可以繞過驗證碼了
優點:基於 burpsite 開發的小插件,這個插件本身是不能試別驗證碼的,但是可以添加接口,這就非常方便使用了,直接百度搜索下一些收費或者免費的解碼平台,然后配置進去即可,方便簡單強大.
缺點:不知道是BUG還是什么情況,我總是遇到修改后的包的http頭丟失字母,比如域名xx.com 丟失最后的m 經過各種換接口調試,終於解決了.
自身使用后缺點:需要不斷的重新安裝,比較麻煩
方法2:
切換到 Burpsuite 的 Project options的session選項卡,點擊Macros下的add按鈕
點擊add按鈕之后,這時候彈出兩個窗口,一個是Macro 記錄器,一個是Macro編輯器,Macro記錄器是記錄發送那些HTTP請求,Macro編輯器是編輯一些參數,比如具體截取響應報文中的哪一個參數等等
首先操作Macro記錄器,點擊選擇我們要發送HTTP請求,然后點擊右下角的OK按鈕即可
然后開始操作Macro編輯器, 選擇右側Configure item, 在彈出的界面中找到’Custom parameter locations in response’區域,然后點擊右側的 Add按鈕
在彈出的窗口中,首先給要截取得參數值命名,我這里命名為randcode ,然后用鼠標選擇我們要截取的內容,這里就把randcode的三位數字的值選取了即可,如果出現如下界面就表示OK了
然后點擊右下角的OK,然后在所有回到的界面中繼續點擊右下角的OK
至此,我們就配置完畢了Macro。
接着開始讓Burpsuite 自動調用Macros,並替換經過代理的請求中的randcode的值
我們切換回Project options 的選項卡,找到Session Handling Rules
點擊Add 按鈕,在彈出的界面中找到Rules Action區域,點擊下方的Add按鈕,在彈出的下拉列表中選擇Run as Macros,在彈出的界面中進行如下配置
點擊ok,返回上一頁面,切換到Scope標簽,進行如下配置
點擊ok,然后回到上一個界面繼續點擊ok,到此,配置完畢,接下來就爆破了