前言
- 可以關(guān)注我喲,一起學(xué)習(xí)檬寂,主頁(yè)有更多練習(xí)例子
- 如果哪個(gè)練習(xí)我沒有寫清楚终抽,可以留言我會(huì)補(bǔ)充
- 如果有加密的網(wǎng)站可以留言發(fā)給我,一起學(xué)習(xí)共享學(xué)習(xí)路程
- 如侵權(quán)桶至,聯(lián)系我昼伴,刪
- **國(guó)家網(wǎng)站,練練手得了镣屹,別作死啊**
- 這個(gè)我也是跟著別人學(xué)的
網(wǎng)站信息:
網(wǎng)址:
aHR0cHM6Ly9mdXd1Lm5oc2EuZ292LmNuL25hdGlvbmFsSGFsbFN0LyMvc2VhcmNoL21lZGljYWw=
端口:
aHR0cHM6Ly9mdXd1Lm5oc2EuZ292LmNuL2VidXMvZnV3dS9hcGkvbnRobC9hcGkvZml4ZWQvcXVlcnlGaXhlZEhvc3BpdGFs
加密參數(shù):
Request Payload 的 encData 和 signData
Request Headers 的 x-tif-nonce 和 x-tif-signature
逆向過程
抓包分析
在頁(yè)面中我們輸入醫(yī)院圃郊,點(diǎn)擊查詢會(huì)發(fā)送一個(gè)POST請(qǐng)求,我們可以看到加密參數(shù)有如圖示所示女蜈,主要是 appCode持舆、encData 和 signData 參數(shù)色瘩,同樣返回的數(shù)據(jù)也有這些參數(shù),其加密解密方法是一樣的逸寓,其中 encType 和 signType 分別為 SM4 和 SM2,這也就是咱們今天要新學(xué)的加密方式了
參數(shù)逆向
參數(shù)encData和signData咱直接走全局搜索
從圖中可以看到我們需要的加密參數(shù)基本都在這了
從上往下看泞遗,先看x-tif-signature
參數(shù)的a=r+o+r,咱只要吧o弄出來就行席覆,進(jìn)入的i.a方法中,直接扣取即可
扣取的代碼:
function ia() {
return function () {
var t = e(6, "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789")
, n = e(1, "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ")
, i = e(1, "0123456789");
return n + i + t
}();
function e(e, t) {
e = e || 32;
for (var n = "", i = 0; i < e; i++)
n += t.charAt(Math.ceil(1e3 * Math.random()) % t.length);
return n
}
}
var r = Math.ceil((new Date).getTime() / 1e3)
, o = ia()
, a = r + o + r;
console.log(a)
接下來看t汹买,t我們發(fā)現(xiàn)后面是一個(gè)sha256佩伤,咱也懶得扣了,耍一個(gè)小聰明晦毙,咱用sha256加密萬看一下是否和網(wǎng)站加密一樣生巡,如果一樣就是sha256加密了,咱都懶得看了
原網(wǎng)站加密:
自己加密:
結(jié)論:
那咱x-tif-signature的就搞定了见妒,繼續(xù)
signData解密
signData是一個(gè)p函數(shù)加密的孤荣,e是參數(shù)
爛尾了,待補(bǔ)充