溫馨提示×

溫馨提示×

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

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python如何調用jsDES加密

發布時間:2021-12-04 10:43:24 來源:億速云 閱讀:375 作者:柒染 欄目:網絡安全

本篇文章給大家分享的是有關python如何調用jsDES加密,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

小伙伴提出了幾個問題我們來一一解決吧

python如何調用jsDES加密

python如何調用jsDES加密

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

前提:是可暴力破解的,因為如果登陸幾次就禁止此賬號登陸了作此嘗試意義不大。DES是對稱加密,開發使用前端進行加密的所以不得不寫上key到頁面或js上。有了這個key,可以進行對密碼同樣加密之后,進行暴力破解。

問題一:第一,就是那個在線加解密網站可否說下呢看了表哥的文章去找 連找幾個都不沒找到需求加密方式的加解密網站。

回答一:加密網站是:

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


python如何調用jsDES加密

其實,細心一點可以發現我上次提及加密網站的時候,數據包截圖中有個Referer字段,那里可以找到。

問題二:寫的登錄加密內容是

encryptByDES('{"username":"admin","password":"12345678"','232cb85***cd354'),解密之后的是iKUJ1等一長字符串,那這個232cb85跟解密后的有什么關系呢這個沒理解。

回答二:因為該網站已經換了一種加密方式了,可以跟你仔細講講。其實des的key,知道原文跟密文也可以暴力破解出key的。

先理清一下思路,他頁面中的加密函數是這樣子的:

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

而同時在頁面中定義了加密的key


python如何調用jsDES加密

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

所以根據以上情報可知得出關系:

1,要加密的原文為:

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

2,key為232cb851727762bbf7dd097da3bcd354

(原網站改用其他非對稱加密了,可以說下這個key,雖然也沒說是哪個網站)

3,加密方式:

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

4,密文:

iKUJ1KTtfI4NqIHAf7QQha71W4vil4uLWR1YQREFkJLsx1W/aKLcnt9Ni7PalkpP


python如何調用jsDES加密

問題三:通過burp重放數據包方式證明方法行不通 是怎么證明的。

證明方法是當你快速重復按的時候返回包是這樣的:

python如何調用jsDES加密

只是在包里unicode編碼了,不能直觀看出,但實際上解碼過后是一下這樣的。在頁面上會顯示:“請不要這么快提交,稍后再試”。


python如何調用jsDES加密

問題四:接下來保存的js順序還是有點錯誤我看截圖f12控制臺上mode-ecb.js不是在md5.js文件上么怎么保存時候其順序在md5.js文件下方了。

回答四:對的,一開始我也遇到這個問題卡在這里,實際上只要按原網站正常加載順序寫在自己的html里面就可以實現了。

原網站加載順序是這樣的:


python如何調用jsDES加密

實際上加密用到的只有兩個,mode-ecb.jstripledes.js。

python如何調用jsDES加密

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


python如何調用jsDES加密

所以測試的Html里應該這么寫。(控制臺能調用成功就可以放到python腳本去進行運行。)

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

然后再控制臺就可以嘗試了,輸入:

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


python如何調用jsDES加密

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

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

回答五:注意細心觀察頁面js就可以發下他加密的填充方式了。

python如何調用jsDES加密

拓展:

寫了一個簡單模擬此次加密暴力破解的練習頁面,在文末附件,可以嘗試。

登陸成功截圖。直接輸入正確密碼點擊登陸無效(因為密碼很簡單,為了要腳本解題和避免一題多解,一定要自己構造http請求才能成功。)

接替成功截圖。


python如何調用jsDES加密

最容易犯錯誤的是,貼了js文件,沒有貼頁面的js沒有貼進去。

暴力破解判斷特征就尋找返回的特點就好了。

使用python腳本暴力破解gif:


python如何調用jsDES加密

附上js加密和測試頁面和爆破腳本,請自行下載。

下載鏈接:

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

提取碼:k8rg

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


python如何調用jsDES加密

以上就是python如何調用jsDES加密,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女