一、当抓到一个数据包的时候,发现响应数据被加密了,这时没有关键字供我们搜索。
二、这时就要从url入手,一般js里面会对对响应的加密数据进行解密,我们搜索url中的路径“/dataservice/query/comp/list”
三、只搜到一个js文件,进去下断,并查看参数,发现正好是这个数据包提交的参数
四、因为要解密响应数据,所以肯定要用response关键字,在该js文件中,局部搜索“response”,t.data就是响应的加密数据,h函数是解密函数
五、进入h函数,进行分析,看到aes,iv,mode,CBC等关键字,肯定是AES加密了
function h(t) {
var e = d.a.enc.Hex.parse(t)
, n = d.a.enc.Base64.stringify(e)
, a = d.a.AES.decrypt(n, f, {
iv: m,
mode: d.a.mode.CBC,
padding: d.a.pad.Pkcs7
})
, r = a.toString(d.a.enc.Utf8);
return r.toString()
}
六、将加密数据带进去解密,关键代码
var key=CryptoJS.enc.Utf8.parse("jo8j9wGw%6HbxfFn")
var iv=CryptoJS.enc.Utf8.parse("0123456789ABCDEF")
p =CryptoJS.enc.Hex.parse(pwd)
w=CryptoJS.enc.Base64.stringify(p)
var value=CryptoJS.AES.decrypt(w,key,{
iv:iv,
mode:CryptoJS.mode.CBC,
padding:CryptoJS.pad.Pkcs7
}).toString(CryptoJS.enc.Utf8);
return value.toString();
七、运行结果