爆破是滲透測試中必不可少的一部分,對於沒有太大價值可利用的漏洞或是業務只有一個登陸頁面時,爆破更是我們的最合適的選擇。那么在爆破時,拋去目標系統對爆破頻率的限制,如果遇到較為復雜的密碼,該如何順利進行密碼破解?
以tomcat為例,首先大家可以先想一想,tomcat后台在提交認證信息時,數據是以何種方式傳輸,是明文嘛?還是某種加密?還是編碼?具體的認證請求包如下所示:
這邊的Authorization字段就是用來做身份認證的,使用的是HTTP Basic認證,用戶認證信息就是后面那一串,把他復制到BurpSuite的Decoder模塊,使用Base64解碼即可獲取用戶認證信息明文。那么之前的問題也有答案了,tomcat使用base64編碼進行認證信息傳輸,使用的是HTTP Basic認證方式。
知道用戶認證信息提交方式之后,我們可以把抓到的包發送到Intruder中進行爆破准備,但是有一點問題,我們在爆破目標測試系統的賬戶的時候,賬號和密碼往往是分離的,那這樣其實兜了好幾圈,不太好直接爆破。當然有人覺得可以用腳本先拼接所有格用戶名和密碼再進行編碼組成一個新的字典,不是不行,但是這破壞了原有的單純的密碼字典的內容,使這個密碼字典變成了只有tomcat可以用,而且每次有新的密碼字典和用戶名字典想要加入時,都必須經過處理,這樣其實就事倍功半了。
Burpsuite的intruder模塊其實包含了很多復雜密碼的變異方式。知道了tomcat的密碼格式,我們下拉intruder模塊中的payload標簽頁的payload type:
選擇custome iterator,就可以進行我們的自定義拼接,position的位置就是我們的拼接方式,那么根據tomcat密碼的格式,我們可以很輕松的聯想出如何進行拼接,第一位(position1)密碼:
第二位(position2)密碼:
第三位(position3)密碼:
拼接完成后,還需要進行編碼。在burpsuite中,對字典進行加密或編碼處理,在payload標簽頁中的payload processing進行,當然首要你要清楚你的進行什么樣的處理,到底是加密還是編碼:
選擇完成后,就是這樣:
再記得把請求包特殊符號編碼去掉=號(因為base64編碼大概率會有=)
這樣確認之后,直接start attack即可。
可以嘗試再decoder中解密這個字符串:
這篇文章只是拿tomcat的特殊密碼格式舉例,burpsuite里還有很多其他格式,需要大家自己去多去聯系,孰能生效,才能事半功倍。
BTW,安全測試課的同學可以通過學習的網絡空間搜索引擎課程來進行tomcat爆破的合法實戰。
作 者:Testfan Covan
出 處:微信公眾號:自動化軟件測試平台
版權說明:歡迎轉載,但必須注明出處,並在文章頁面明顯位置給出文章鏈接