python解密_python在加密解密中的例子(尽可能去深挖)
前言
在實際測試中,我們一遇到登錄處用戶名和密碼都加密的例子,我們就沒辦法進行深入啦。就像下面的例子,其實加密只是增加我們的攻擊成本,只要還是客戶端,在提交服務器之前,所有的加密基本有跡可循,直接看本地js是如何操作的即可。
在本文中,我會分析問題,然后用python來解決問題。這樣,更貼合實際。
#下面是post提交的參數,可以看到,其中兩處關鍵的地方,是加密過后的。
ZXh0Oz47bDzluJDlj7fmiJblr4bnoIHkuI3mraPnoa7vvIHor7fph43mlrDovpPlhaXjgII7Pj47Pjs7Pjs%2BPjs%2BPjs%2BPjs%2BMhWtdwzKgY7W7gTey2P%2BJbjqPKw%3D&pcInfo=Mozilla%2F5.0+%28Windows+NT+10.0%3B+WOW64%29+AppleWebKit%2F537.36+%28KHTML%2C+like+Gecko%29+Chrome%2F70.0.3538.102+Safari%2F537.36undefined5.0+%28Windows+NT+10.0%3B+WOW64%29+AppleWebKit%2F537.36+%28KHTML%2C+like+Gecko%29+Chrome%2F70.0.3538.102+Safari%2F537.36+SN%3ANULL
&typeName=%D1%A7%C9%FA
&dsdsdsdsdxcxdfgfg=8F430408BF32ABBBBF2A49C66FEDB4
&fgfggfdgtyuuyyuuckjg=0300D447DB23BC0305C35A9DECD3C4
&Sel_Type=STU
&txt_asmcdefsddsd=admin
&txt_pewerwedsdfsdff=
&txt_sdertfgsadscxcadsads=
1.檢查本地js
image.png
這是我通過burp抓包后的結果,個人習慣在burp中看頁面信息,方便一遍看一遍測試。
可以看到圖中的js信息,我們把它js格式化一下,
具體網站是:js代碼美化
function chkpwd(obj) {
if (obj.value != '') {
#這里是對dsdsdsdsdxcxdfgfg這個參數進行加密
var s = md5(document.all.txt_asmcdefsddsd.value + md5(obj.value).substring(0, 30).toUpperCase() + '11238').substring(0, 30).toUpperCase();
document.all.dsdsdsdsdxcxdfgfg.value = s;
} else {
document.all.dsdsdsdsdxcxdfgfg.value = obj.value;
}
}
function chkyzm(obj) {
if (obj.value != '') {
#這里是對fgfggfdgtyuuyyuuckjg參數加密
var s = md5(md5(obj.value.toUpperCase()).substring(0, 30).toUpperCase() + '11238').substring(0, 30).toUpperCase();
document.all.fgfggfdgtyuuyyuuckjg.value = s;
} else {
document.all.fgfggfdgtyuuyyuuckjg.value = obj.value.toUpperCase();
}
}
chkpwd 密碼加密方式
md5(用戶名+md5(密碼)的前30位并且字母全大寫+'11238')的前30為字母大寫
chkyzm 驗證碼加密方式
md5(md5(驗證碼大寫)的前30位大寫字母+'11238')的前30位大寫字母
可以看到,在我們試圖去加密一個隱私時,估計也會采取這個方法,
但是我們會把我們怎么加密的去告訴公開嗎?
其實廠家這樣做的只是增加了攻擊成本,但是并未實際保護。
2.python實現加密
其實就是我們用上面的加密方式去輸出
//upper()是把前面字母全大寫,其他就是md5一個知識點
#coding=utf-8
import hashlib
oj = hashlib.md5()
oj.update('admin')
str2 = '123456'+oj.hexdigest().upper()[0:30]+'11238'
oj.update(str2)
print oj.hexdigest().upper()[0:30]
//這里只是一條信息的加密方式,然后我們結合到字典來生成md5后的密碼字典
with open('pass_md5.txt','a+') as fi:
with open('pass.txt','r') as f:
for i in f.readlines():
oj = hashlib.md5()
oj.update(i[:-1])
str2 = '123456'+oj.hexdigest().upper()[0:30]+'11238'
oj = hashlib.md5()
oj.update(str2)
fi.write(oj.hexdigest().upper()[0:30])
fi.write('\n')
# print oj.hexdigest().upper()[0:30]
ok,我們這里把生成的md5字典,結合burp就可以進行爆破啦。
不過可惜的是,驗證碼在參數驗證中,是驗證的,錯后就會一直報驗證碼錯誤。
總結
日后會常常更新,人的憤怒都是對自己無能的憤怒,希望自己慢慢去做出一些改變。加油,挖洞,盡可能的去挖洞。
總結
以上是生活随笔為你收集整理的python解密_python在加密解密中的例子(尽可能去深挖)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: yum 安装apache php mys
- 下一篇: 当下python的主流版本是_Pytho