微信公众号平台js逆向
前言
JS逆向学习,根据教程进行案例实战并记录过程,本次案例为微信公众号登录密码字段加密逆向。
逆向分析
在登录界面输入账号和密码点击登录获取到数据请求包,这里实验随便输入账号密码。
按f12使用开发者工具,在网络选项中查看请求,查看我们请求所提交的表单数据,发现pwd
也就是我们的密码字段已经做了加密。
加密字段是pwd
,这时直接srtl+shift+f
全局搜索关键字pwd
。
这时搜索到很多含有pwd
关键字的文件,一般加密都是通过js文件来进行加密,直接查看js文件中的pwd
关键字
直接点击js文件,这时的js文件是压缩的,直接点击{}
进行格式化
然后在查看js文件中的20条匹配结果,对有pwd
关键字的地方或者是看起来像加密的地方下断点。
打上断点之后重新点击登录按钮进入调试状态,运行到第一个断点,发现pwd
值为123。
选中全部会发现这个字符串就是加密后的值,说明此处对pwd
进行了加密处理
进入下一步函数调用
进入到return这里,发现调用了很多函数,然后返回了加密值
找到这里所有的js代码,对这最后这个}
往上的所有函数,也就是靠着左边红线的所有函数
把这部分复制进js调试工具,第一步首先格式化代码,然后加载代码发现n 未定义
,这里重新定义一下n
在首行定义n为一个空对象
1 | var n = {} |
然后再次加载代码成功
重写一下匿名函数
1 | n.exports = function(e, t, n) { |
改写后
1 | function getPasswd(e, t, n) { |
然后调用函数计算结果,对比之前的值一样。
使用nodejs+python执行
安装PyExecJs
1 | pip install PyExecJs |
在Pycharm中安装nodejs插件,然后配置nodejs
编写python文件执行js
1 | import execjs |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 暮余笙のBlog!
评论