前言
- 可以关注我哟,一起学习,主页有更多练习例子
- 如果哪个练习我没有写清楚,可以留言我会补充
- 如果有加密的网站可以留言发给我,一起学习共享学习路程
- 如侵权,联系我,删
- **国家网站,练练手得了,别作死啊**
- 这个我也是跟着别人学的
网站信息:
网址:
aHR0cHM6Ly9mdXd1Lm5oc2EuZ292LmNuL25hdGlvbmFsSGFsbFN0LyMvc2VhcmNoL21lZGljYWw=
端口:
aHR0cHM6Ly9mdXd1Lm5oc2EuZ292LmNuL2VidXMvZnV3dS9hcGkvbnRobC9hcGkvZml4ZWQvcXVlcnlGaXhlZEhvc3BpdGFs
加密参数:
Request Payload 的 encData 和 signData
Request Headers 的 x-tif-nonce 和 x-tif-signature
逆向过程
抓包分析
在页面中我们输入医院,点击查询会发送一个POST请求,我们可以看到加密参数有如图示所示,主要是 appCode、encData 和 signData 参数,同样返回的数据也有这些参数,其加密解密方法是一样的,其中 encType 和 signType 分别为 SM4 和 SM2,这也就是咱们今天要新学的加密方式了
参数逆向
参数encData和signData咱直接走全局搜索
从图中可以看到我们需要的加密参数基本都在这了
image.png
从上往下看,先看x-tif-signature
image.png参数的a=r+o+r,咱只要吧o弄出来就行,进入的i.a方法中,直接扣取即可
image.png
扣取的代码:
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我们发现后面是一个sha256,咱也懒得扣了,耍一个小聪明,咱用sha256加密万看一下是否和网站加密一样,如果一样就是sha256加密了,咱都懒得看了
原网站加密:
image.png
自己加密:
image.png
结论:
image.png
那咱x-tif-signature的就搞定了,继续
signData解密
signData是一个p函数加密的,e是参数
image.png image.png
烂尾了,待补充
网友评论