网站:https://m.ctyun.cn/wap/main/auth/login?redirect=%2Fmy
密码:fffffffffff....666
抓包分析一下:
密码直接加在url后面进行请求,打个xhr断点看看堆栈
找一下堆栈,当然也能直接全局搜加密点,在此处找到加密点,断点打一下
encodeURI(Object(f["c"])(r.value, Object(f["f"])(Object(f["g"])(a.value))))加密函数分析,就是执行了Object(f["c"])()函数,控制台输入,点击函数
发现加密为 s = x.a.TripleDES.encrypt(e, d, l);对加密函数进行分析,关键为找到x的生成,向上找,找到x的生成点
思路到这,大体为找到3452函数,构建函数执行就行,此时全局搜或者查看堆栈都行,我是找的堆栈,然后倒入熟悉的webpack格式。
由于太多了,我就不一一构建了。构建完的函数大体为下:
执行原有代码:
function Z(e) { var x = fff("3452"); var n = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : "" , t = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {} , a = t.enc , c = "Utf8" , r = t.mode , i = "ECB" , o = t.padding , u = "Pkcs7" , d = x.enc[c].parse(n) , l = { mode: x.mode[i], padding: x.pad[u] }, s = x.TripleDES.encrypt(e, d, l); console.log(s.toString()); return s.toString() }
发现与结果不同,此处的n和t与浏览器的结果不一致,浏览器执行一遍
发现n比原账号多了几个0,t ={},修改后执行代码
与浏览器结果一致,完成。
感兴趣的可以关注我的公众号:码字的秃猴 一起学习