it初學者做網(wǎng)站最近的新聞有哪些
網(wǎng)址:登錄- 一品威客網(wǎng),創(chuàng)新型知識技能共享服務(wù)平臺
抓到登陸包分析,發(fā)現(xiàn)請求頭有參數(shù)加密,直接搜索
定位到加密位置,打上斷點,很明顯是對象f的a方法進行了加密。
往上找f,可以發(fā)現(xiàn)f被定義了,是個webpack,打上斷點,刷新頁面‘
進入e,找到加載器,復制自執(zhí)行函數(shù),導出加載器,補上環(huán)境,改成字典格式,刪除初始化。找到443函數(shù),復制函數(shù)。
初步寫成代碼
現(xiàn)在把里面的參數(shù)找齊,l是一個固定對象,是固定的打印一下就知道了
M是載荷
U在上方有定義
里面缺少A,上面定義了
又缺少h.e函數(shù) ,進去復制
將h.e改寫成d
現(xiàn)在代碼情況,現(xiàn)在就是缺少模塊了。去一個個復制即可。
其實也不用這樣子扣webpack,因為我發(fā)現(xiàn)就如f.a函數(shù)中,里面的的方法無非是MD5和AES
所以調(diào)用庫即可。
完整代碼:
const CryptoJS = require("crypto-js");
function d(t) {return CryptoJS.MD5(t)
};
l = {key: CryptoJS.enc.Utf8.parse("fX@VyCQVvpdj8RCa"),iv: CryptoJS.enc.Utf8.parse(function(t) {for (var e = "", i = 0; i < t.length - 1; i += 2) {var n = parseInt(t[i] + "" + t[i + 1], 16);e += String.fromCharCode(n)}return e}("00000000000000000000000000000000"))}
var v = function(data) {return function(data) {return CryptoJS.AES.encrypt(data, l.key, {iv: l.iv,mode: CryptoJS.mode.CBC,padding: CryptoJS.pad.Pkcs7}).toString()}(data)
};
var g = {"i": false,"j": false,"h": true,"d": "prod","a": "https://s1.weikeimg.com/_nuxt/","e": "https://im2.epwitkey.com","b": "4ac490420ac63db4","c": "a75846eb4ac490420ac63db46d2a03bf","f": "af9f93d4530c6167","g": "c93ce713af9f93d4530c6167b78a3871"
};
A = parseInt((new Date).getTime() / 1e3);
var M={"username": "123456","password": "123456","code": "","hdn_refer": "https://zt.epwk.com/"
};
var U = {"App-Ver": "","Os-Ver": "","Device-Ver": "",Imei: "","Access-Token": "",Timestemp: A,NonceStr: "".concat(A).concat(Object(d)()),"App-Id": l.j ? l.f : l.b,"Device-Os": "web"
};
f = function(t) {var e = "";return Object.keys(t).sort().forEach((function(n) {e += n + ("object" === typeof (t[n]) ? JSON.stringify(t[n], (function(t, e) {return "number" == typeof e && (e = String(e)),e})).replace(/\//g, "\\/") : t[n])})),e};
h = function(t) {var data = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}, e = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : "a75846eb4ac490420ac63db46d2a03bf", n = e + f(data) + f(t) + e;return n = d(n),n = v(n)};
console.log(h(U, M, g.c))
// 結(jié)果為RLD9f/i0LE0orrEqIey98ZOF7ezlL+yFkeycUVYF2kI=