一、当抓到一个数据包的时候,发现响应数据被加密了,这时没有关键字供我们搜索。
二、这时就要从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();
七、运行结果