破解網(wǎng)站登錄加密的方法是什么-創(chuàng)新互聯(lián)

創(chuàng)新互聯(lián)www.cdcxhl.cn八線動(dòng)態(tài)BGP香港云服務(wù)器提供商,新人活動(dòng)買多久送多久,劃算不套路!

目前創(chuàng)新互聯(lián)已為1000+的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)頁(yè)空間、網(wǎng)站托管、服務(wù)器托管、企業(yè)網(wǎng)站設(shè)計(jì)、安塞網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。

破解網(wǎng)站登錄加密的方法是什么?這個(gè)問(wèn)題可能是我們?nèi)粘W(xué)習(xí)或工作經(jīng)常見(jiàn)到的。希望通過(guò)這個(gè)問(wèn)題能讓你收獲頗深。下面是小編給大家?guī)?lái)的參考內(nèi)容,讓我們一起來(lái)看看吧!

今天的內(nèi)容主要講的是破解一個(gè)網(wǎng)站的rsa加密,當(dāng)然肯定不是破解這個(gè)算法,而是找到加密的參數(shù),正確模擬這個(gè)算法即可。

1、什么是rsa算法

1976年,兩位美國(guó)計(jì)算機(jī)學(xué)家Whitfield Diffie 和 Martin Hellman,提出了一種嶄新構(gòu)思,可以在不直接傳遞密鑰的情況下,完成解密。這被稱為“Diffie-Hellman密鑰交換算法”。這個(gè)算法啟發(fā)了其他科學(xué)家。人們認(rèn)識(shí)到,加密和解密可以使用不同的規(guī)則,只要這兩種規(guī)則之間存在某種對(duì)應(yīng)關(guān)系即可,這樣就避免了直接傳遞密鑰。

這種新的加密模式被稱為”非對(duì)稱加密算法”。

(1)乙方生成兩把密鑰(公鑰和私鑰)。公鑰是公開的,任何人都可以獲得,私鑰則是保密的。

(2)甲方獲取乙方的公鑰,然后用它對(duì)信息加密。

(3)乙方得到加密后的信息,用私鑰解密。

如果公鑰加密的信息只有私鑰解得開,那么只要私鑰不泄漏,通信就是安全的。

2、研究目標(biāo)

從我要研究的網(wǎng)站來(lái)說(shuō),就是根據(jù)參數(shù)得到正確的公鑰,加密以后返回給服務(wù)器,讓服務(wù)器使用私鑰可以解密出正確的數(shù)據(jù)即可。

同時(shí),本文不會(huì)將具體的網(wǎng)站說(shuō)出來(lái),只是給大家提供一個(gè)解決問(wèn)題的思路。

3、開始

3.1 抓包找參數(shù)

首先,打開某個(gè)網(wǎng)站的登錄頁(yè)面,輸入用戶名,密碼,驗(yàn)證碼之類的參數(shù), 抓包看到了下面這個(gè)頁(yè)面:

破解網(wǎng)站登錄加密的方法是什么

我實(shí)際輸入的值全是1, 然后都被加密了, 沒(méi)辦法,只能去找加密的方法了。

經(jīng)過(guò)一番搜索過(guò)后,才發(fā)現(xiàn),原來(lái)加密的算法就在源代碼里面,這里截個(gè)圖:

破解網(wǎng)站登錄加密的方法是什么

從這里就可以看到具體的算法名以及相關(guān)的參數(shù)了,你會(huì)說(shuō),這是什么算法我都不知道???搜啊,用關(guān)鍵詞搜一下就能知道了。

同時(shí),是不是覺(jué)得這個(gè)網(wǎng)站好傻逼,這不太簡(jiǎn)單了嗎?

肯定不是?。。?/p>

這么簡(jiǎn)單,說(shuō)明此處也是必有玄機(jī)!??!

至于什么玄機(jī),到后面說(shuō),都是淚。

3.2 分析加密流程

首先, 我們知道了公鑰以后,解析這個(gè)公鑰,就可以得到相關(guān)的參數(shù),給大家找了示例代碼

# /usr/bin/python
# encoding: utf-8
import base64
def str2key(s):
    # 對(duì)字符串解碼
    b_str = base64.b64decode(s)
    if len(b_str) < 162:
        return False
    hex_str = ''
    # 按位轉(zhuǎn)換成16進(jìn)制
    for x in b_str:
        h = hex(ord(x))[2:]
        h = h.rjust(2, '0')
        hex_str += h
    # 找到模數(shù)和指數(shù)的開頭結(jié)束位置
    m_start = 29 * 2
    e_start = 159 * 2
    m_len = 128 * 2
    e_len = 3 * 2
    modulus = hex_str[m_start:m_start + m_len]
    exponent = hex_str[e_start:e_start + e_len]
    return modulus,exponent
if __name__ == "__main__":
    pubkey = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDC7kw8r6tq43pwApYvkJ5laljaN9BZb21TAIfT/vexbobzH7Q8SUdP5uDP
    XEBKzOjx2L28y7Xs1d9v3tdPfKI2LR7PAzWBmDMn8riHrDDNpUpJnlAGUqJG9ooPn8j7YNpcxCa1iybOlc2kEhmJn5uwoanQq+CA6agNkq
    ly2H4j6wIDAQAB"
    key = str2key(pubkey)
    print key

相應(yīng)的輸出:

('c2ee4c3cafab6ae37a7002962f909e656a58da37d0596f6d530087d3fef7b16e86f31fb43c49474fe6e0cf5c404acce8f1d8bdbccbb5ecd
5df6fded74f7ca2362d1ecf033581983327f2b887ac30cda54a499e500652a246f68a0f9fc8fb60da5cc426b58b26ce95cda41219899f9bb0
a1a9d0abe080e9a80d92a972d87e23eb', 
'010001')

從代碼中可以看出,解析了公鑰之后得到了兩個(gè)值,一個(gè)就是010001,和我們?cè)诰W(wǎng)站源代碼里面找到的值是一樣的。所以,源代碼里面的參數(shù)我們應(yīng)該就是可以直接使用的,是不是有種找到組織的趕腳。

接下來(lái),利用下面的代碼,來(lái)對(duì)數(shù)據(jù)進(jìn)行加密:

import rsa
import binascii
def en_test():
    param_1 = "010001"
    # 某次我找到的
    param_2 = "955120AB9334B7CD52FCDB422DBF564AFD46DEBDC706F33502BBFAD9DD216A22E4D5012CB70F28473B46FB7190D08C31
    B4B8E76B5112ACE1C5552408961530B1C932DEEA8FC38A9A624AD22073F56F02BF453DD2C1FEA0164106D6B099CC9E5EC88C356FC16
    4FCA47C766DD565D3D11048D27F2DD4221A0B26AB59BD7D09841F"
    message = 'nihao'
    modulus = int(param_2, 16)
    exponent = int(param_1, 16)
    rsa_pubkey = rsa.PublicKey(modulus, exponent)
    crypto = rsa.encrypt(message, rsa_pubkey)
    data = binascii.b2a_hex(crypto)
    print data
if __name__ == '__main__':
    en_test()

但是當(dāng)我這樣做完,進(jìn)行模擬登錄,還以為自己很牛逼的時(shí)候,服務(wù)器卻給我返回了這樣的結(jié)果, 目瞪狗呆啊:

{"Status":false,"ResultValue":"","StatusCode":"REFRESH","StatusMessage":"請(qǐng)嘗試重新登錄","RecordCount":0,"Data":null}

可以看到信息提示要刷新,但是當(dāng)時(shí)是百思不得其解,為毛線要刷新?

困惑了一會(huì)之后,我再次從頭走了一遍流程,這下我才發(fā)現(xiàn),原來(lái)源代碼里面的那個(gè)長(zhǎng)長(zhǎng)的數(shù)據(jù)是會(huì)改變的,直到這個(gè)時(shí)候,我才意識(shí)到為什么要我刷新。

服務(wù)器啊,你就不能直接說(shuō)參數(shù)錯(cuò)誤嗎?刷新你大爺啊。

果然,我還是太年輕啊。

果然,天上掉下的絕不是餡餅,絕逼是個(gè)陷阱。

知道這個(gè)坑以后就好辦了,用個(gè)正則匹配一下就行了,而結(jié)果也是對(duì)的:

{"Status":true,"ResultValue":"","StatusCode":"OK","StatusMessage":"成功","RecordCount":0,"Data":{"LoginUrl":
"/System/Welcome"}}

感謝各位的閱讀!看完上述內(nèi)容,你們對(duì)破解網(wǎng)站登錄加密的方法是什么大概了解了嗎?希望文章內(nèi)容對(duì)大家有所幫助。如果想了解更多相關(guān)文章內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道。

網(wǎng)站標(biāo)題:破解網(wǎng)站登錄加密的方法是什么-創(chuàng)新互聯(lián)
鏈接URL:http://muchs.cn/article36/ddoppg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄、域名注冊(cè)、App設(shè)計(jì)、Google做網(wǎng)站、手機(jī)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

小程序開發(fā)