溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

python如何調(diào)用jsDES加密

發(fā)布時(shí)間:2021-12-04 10:43:24 來(lái)源:億速云 閱讀:311 作者:柒染 欄目:網(wǎng)絡(luò)安全

本篇文章給大家分享的是有關(guān)python如何調(diào)用jsDES加密,小編覺(jué)得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話(huà)不多說(shuō),跟著小編一起來(lái)看看吧。

小伙伴提出了幾個(gè)問(wèn)題我們來(lái)一一解決吧

python如何調(diào)用jsDES加密

python如何調(diào)用jsDES加密

回顧一下背景:其實(shí)這個(gè)站每個(gè)月都會(huì)多家廠家做滲透,但也許看到密碼加密了就pass這個(gè)方式了,但是當(dāng)你肯比別人付出更多的耐心,就能比別人看到更多的風(fēng)景,挖到更多的漏洞。

前提:是可暴力破解的,因?yàn)槿绻顷憥状尉徒勾速~號(hào)登陸了作此嘗試意義不大。DES是對(duì)稱(chēng)加密,開(kāi)發(fā)使用前端進(jìn)行加密的所以不得不寫(xiě)上key到頁(yè)面或js上。有了這個(gè)key,可以進(jìn)行對(duì)密碼同樣加密之后,進(jìn)行暴力破解。

問(wèn)題一:第一,就是那個(gè)在線(xiàn)加解密網(wǎng)站可否說(shuō)下呢看了表哥的文章去找 連找?guī)讉€(gè)都不沒(méi)找到需求加密方式的加解密網(wǎng)站。

回答一:加密網(wǎng)站是:

http://tool.chacuo.net/cryptdes。然后選用的是:


python如何調(diào)用jsDES加密

其實(shí),細(xì)心一點(diǎn)可以發(fā)現(xiàn)我上次提及加密網(wǎng)站的時(shí)候,數(shù)據(jù)包截圖中有個(gè)Referer字段,那里可以找到。

問(wèn)題二:寫(xiě)的登錄加密內(nèi)容是

encryptByDES('{"username":"admin","password":"12345678"','232cb85***cd354'),解密之后的是iKUJ1等一長(zhǎng)字符串,那這個(gè)232cb85跟解密后的有什么關(guān)系呢這個(gè)沒(méi)理解。

回答二:因?yàn)樵摼W(wǎng)站已經(jīng)換了一種加密方式了,可以跟你仔細(xì)講講。其實(shí)des的key,知道原文跟密文也可以暴力破解出key的。

先理清一下思路,他頁(yè)面中的加密函數(shù)是這樣子的:

<script type="text/javascript">

function encryptByDES(message, key) {

var keyHex = CryptoJS.enc.Utf8.parse(key);

var encrypted = CryptoJS.DES.encrypt(message, keyHex, {

mode: CryptoJS.mode.ECB,

padding: CryptoJS.pad.Pkcs7

});

return encrypted.toString();

}

</script>

而同時(shí)在頁(yè)面中定義了加密的key


python如何調(diào)用jsDES加密

也從上得知道加密的原文格式為:{"username":username”,"password":password},密碼原文根據(jù)key進(jìn)行des加密

所以根據(jù)以上情報(bào)可知得出關(guān)系:

1,要加密的原文為:

{"username":"admin","password":"12345678"}

2,key為232cb851727762bbf7dd097da3bcd354

(原網(wǎng)站改用其他非對(duì)稱(chēng)加密了,可以說(shuō)下這個(gè)key,雖然也沒(méi)說(shuō)是哪個(gè)網(wǎng)站)

3,加密方式:

加密模式ECB,填充pkcs7padding,偏移量0,輸出base64

4,密文:

iKUJ1KTtfI4NqIHAf7QQha71W4vil4uLWR1YQREFkJLsx1W/aKLcnt9Ni7PalkpP


python如何調(diào)用jsDES加密

問(wèn)題三:通過(guò)burp重放數(shù)據(jù)包方式證明方法行不通 是怎么證明的。

證明方法是當(dāng)你快速重復(fù)按的時(shí)候返回包是這樣的:

python如何調(diào)用jsDES加密

只是在包里unicode編碼了,不能直觀看出,但實(shí)際上解碼過(guò)后是一下這樣的。在頁(yè)面上會(huì)顯示:“請(qǐng)不要這么快提交,稍后再試”。


python如何調(diào)用jsDES加密

問(wèn)題四:接下來(lái)保存的js順序還是有點(diǎn)錯(cuò)誤我看截圖f12控制臺(tái)上mode-ecb.js不是在md5.js文件上么怎么保存時(shí)候其順序在md5.js文件下方了。

回答四:對(duì)的,一開(kāi)始我也遇到這個(gè)問(wèn)題卡在這里,實(shí)際上只要按原網(wǎng)站正常加載順序?qū)懺谧约旱?/strong>html里面就可以實(shí)現(xiàn)了。

原網(wǎng)站加載順序是這樣的:


python如何調(diào)用jsDES加密

實(shí)際上加密用到的只有兩個(gè),mode-ecb.jstripledes.js。

python如何調(diào)用jsDES加密

文末附上加密的JavaScript腳本,和暴力破解的腳本,和模擬的加密暴力破解源碼。


python如何調(diào)用jsDES加密

所以測(cè)試的Html里應(yīng)該這么寫(xiě)。(控制臺(tái)能調(diào)用成功就可以放到python腳本去進(jìn)行運(yùn)行。)

<script src="tripledes.js"></script>

<script src="mode-ecb.js"></script>

<script type="text/javascript">

function encryptByDES(message, key) {

   var keyHex = CryptoJS.enc.Utf8.parse(key);

   var encrypted = CryptoJS.DES.encrypt(message, keyHex, {

       mode: CryptoJS.mode.ECB,

       padding: CryptoJS.pad.Pkcs7

   });

   return encrypted.toString();

}

</script>

然后再控制臺(tái)就可以嘗試了,輸入:

encryptByDES('{"username":"admin","password":"12345678"}','232cb851727762bbf7dd097da3bcd354');


python如何調(diào)用jsDES加密

用到python腳本模塊里,只需要新建一個(gè)js文件,把兩個(gè)按順序貼到里面就可以直接調(diào)用了。見(jiàn)附件main_total.js。

問(wèn)題五:文章中提到遇到的頁(yè)面jsdes加密方式是pkcs7padding,是怎樣確定這個(gè)頁(yè)面的加密方式的?

回答五:注意細(xì)心觀察頁(yè)面js就可以發(fā)下他加密的填充方式了。

python如何調(diào)用jsDES加密

拓展:

寫(xiě)了一個(gè)簡(jiǎn)單模擬此次加密暴力破解的練習(xí)頁(yè)面,在文末附件,可以嘗試。

登陸成功截圖。直接輸入正確密碼點(diǎn)擊登陸無(wú)效(因?yàn)槊艽a很簡(jiǎn)單,為了要腳本解題和避免一題多解,一定要自己構(gòu)造http請(qǐng)求才能成功。)

接替成功截圖。


python如何調(diào)用jsDES加密

最容易犯錯(cuò)誤的是,貼了js文件,沒(méi)有貼頁(yè)面的js沒(méi)有貼進(jìn)去。

暴力破解判斷特征就尋找返回的特點(diǎn)就好了。

使用python腳本暴力破解gif:


python如何調(diào)用jsDES加密

附上js加密和測(cè)試頁(yè)面和爆破腳本,請(qǐng)自行下載。

下載鏈接:

https://pan.baidu.com/s/1kXlGkIVd7YDkRCtov01nOw

提取碼:k8rg

main_total.js是合并的版本,test.php是模擬登陸的頁(yè)面。


python如何調(diào)用jsDES加密

以上就是python如何調(diào)用jsDES加密,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見(jiàn)到或用到的。希望你能通過(guò)這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI