對密文密碼進行爆破的一種方法

需求

在爆破某款路由器管理員登錄密碼時,從burp抓到的包可以看到password參數的值是經過前端加密之後再進行傳輸的,這種情況下使用明文密碼字典幾乎不可能爆破成功。我的嘗試是本地調用該登錄界面用來加密的js函數,將明文密碼字典轉爲對應的密文密碼字典。

實踐過程

首先我們查看一下點擊登錄按鈕後都執行了哪些js函數。
登錄界面
(command+f)搜索check()函數定義的位置,可以看到對密碼進行加密的函數是base64encode()和utf16to8()
加密函數
其實這裏已經發現是先用Unicode編碼再用Base64編碼進行加密的,在一些網站上可以直接轉換,但我們還是當成未知加密來看。
搜索sources發現加密函數都被定義在base64Encode.js裏。
函數定義位置
到這裏,我們已經把加密流程理清了,接下來寫一個python腳本調用js。

python腳本

需要使用到python的PyExecJS 庫(使用方法可以參考其他博客),代碼如下

import execjs #導入PyExecJS 庫

def get_js(): #導入js文件
    f = open("base64Encode.js", 'r', encoding='UTF-8')
    line = f.readline()
    htmlstr = ''
    while line:
        htmlstr = htmlstr + line
        line = f.readline()
    return htmlstr

jsstr = get_js()
ctx = execjs.compile(jsstr)

def creative_book(): #創建密文密碼字典
    f = open("adobe_top100_pass.txt")
    for line in f:
        r = line.strip('\n')
        utf = ctx.call('utf16to8', r)
        base64 = ctx.call('base64encode', utf)
        h = open('adobe_top100_pass_creative.txt', 'a')
        h.write("\n" + base64)
        h.close()
    f.close()

creative_book()

由於我有印象是弱口令密碼,所以選擇使用kali自帶的adobe_top100_pass.txt明文密碼字典,跑一下程序,轉爲我們需要的adobe_top100_pass_creative.txt密文密碼字典。
密文密碼字典
接下來在burpsuite中爆破時選擇該字典就可以了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章