JS逆向之webpack 通用扣取思路
2023-06-13 09:15:41 时间
标题
环境
win10 chrome106
目标站:aHR0cHM6Ly93d3cuZ205OS5jb20v
加密参数 password: K6YEmQrNy%2FQgdnacXhdIZ1upCj4UU562IW89oOZquLkZ%2F16JDNyMqEU7pGVemvQzjfAlOzh7nSOLPkJp3kxbTm8XtWrHp9K%2BmMClOmmhkbdjAyax5xLBWC6PJiD6o8H
随便输入一些信息,触发登录,抓包找到接口
明显分析出a.encode就是加密方法
1.定位加载模块的方法(加载器)
webpack必有一个加载模块的方法:call或apply,找到加载器先抠出来
function e(s) {
if (i[s])
return i[s].exports;
var n = i[s] = {
exports: {},
id: s,
loaded: !1
};
return t[s].call(n.exports, n, n.exports, e),
}
2.构造成自执行方法
在控制台调试一下缺什么补什么
!function(t) {
function e(s) {
var i = {};
if (i[s])
return i[s].exports;
var n = i[s] = {
exports: {},
id: s,
loaded: !1
};
return t[s].call(n.exports, n, n.exports, e),
}
}()
3.定位并扣除调用的加密方法
在a.encode处下断点,跟进去找到最终的加密方法
分析得知jsencrypt.encrypt就是最终的加密方法
将jsencrypt.encrypt的方法整段扣出来,然后作为参数填入自执行加载器中,然后在将调用jsencrypt.encrypt的方法也抠出来
代码太长就不贴了,最终的格式就是下面的样子,
!(function(t) {
var i = {};
function e(s) {
if (i[s]) return i[s].exports;
var n = i[s] = {
exports: {},
id: s,
loaded: !1
};
return t[s].call(n.exports, n, n.exports, e), n.loaded = !0, n.exports
}
_e = e;
})({
encrypt: function(t, e, i) {},
diaoyong: function(t, e, i) {}
});
4.导出加密方法
var _e;
!(function(t) {
var i = {};
function e(s) {
if (i[s]) return i[s].exports;
var n = i[s] = {
exports: {},
id: s,
loaded: !1
};
return t[s].call(n.exports, n, n.exports, e), n.loaded = !0, n.exports
}
_e = e;
})({
encrypt: function(t, e, i) {},
diaoyong: function(t, e, i) {}
});
5.编写自定义方法 按照流程加密
function getkey(pass, time) {
var diaoyong= _e("diaoyong");
//这儿需要new一下调用方法,不然获取不到方法属性
var new_diaoyong = (new diaoyong);
return new_diaoyong.encode(pass, time)
}
效果
资源下载
https://download.csdn.net/download/qq_38154948/87253109
本文仅供学习交流使用,如侵立删! |
---|
相关文章
- html js 全局 变量,JS定义全局变量
- Vue.js的设计思路
- php unicode编码_js unicode转中文
- JS 事件循环 Node 篇
- JS对象转数组_js怎么把数组转成对象
- JS设置定时器_js设置定时器
- js三元运算详解编程语言
- JS window对象详解
- 妙用JS获取Oracle信息的快速方法(js获取Oracle)
- 用js写“算24”游戏的思路分析与实现代码
- JS函数验证总结(方便js客户端输入验证)
- js获取坐标通过JS得到当前焦点(鼠标)的坐标属性
- js用Date对象处理时间实现思路及代码
- js根据给定的日期计算当月有多少天实现思路及代码
- js处理json以及字符串的比较等常用操作
- js控制table合并具体实现
- js,jquery滚动/跳转页面到指定位置的实现思路
- 用PHP代替JS玩转DOM的思路及示例代码
- js实现局部页面打印预览原理及示例代码
- js在数组中删除重复的元素自保留一个(两种实现思路)
- 用js传递value默认值的示例代码