js逆向-2-跟栈

wy云js加密逆向

登录的时候会加密我们输入的电话号码,我们需要得到这个Params的加密方法

首先点击登录之后抓取数据包,点击第一个,并打上断点

然后点击发送验证码就会断住

这里的arguments里面就有我们想要的值,然后继续跟栈

这里显示a的值通过o[0]获取的,然后继续跟进栈

显示a=i[0],然后继续跟进

这里可以看到g02x.data就是我们想要的值,这个值是通过e1x获取的,e1x是通过上一个栈传入的

var gD2x = e1x.request

继续跟进

发现这里有 d1x的参数,d1x里面的data刚好是我们想要的值

d1x是通过rn4r获取到的,

var d1x = {
                request: this.rn4r,
                headers: this.bfe3x
            };

rn4r是通过i1x复制的,这个i1x是通过上一个栈传入的,function(i1x),然后继续跟进

然后得到e1x.data就是我们要找的值,e1x也是通过上一个栈传入的,所有继续跟进

这里就找到了e1x.data的值,发现是通过bVk5p.encText得到的,

所以这个代码就是我们想要的加密代码

var bVk5p = window.asrsea(JSON.stringify(i1x), bsc6W(["流泪", "强"]), bsc6W(RU1x.md), bsc6W(["爱心", "女孩", "惊恐", "大笑"]));
            e1x.data = j1x.cr1x({
                params: bVk5p.encText,
                encSecKey: bVk5p.encSecKey
            })

调试里面的参数如下

这里的010001就是默认的rsa的加密的mode,如果是rsa加密就会先new一个对象,接下来就去找这段加密代码里面没有的东西,首先就是 window.asrsea并没有,鼠标放在上面进行跳转就能知道代码所在的文件

这个js文件有很多行,但是一般的rsa加密大约有2000左右的行数,直接复制这个js文件代码到编辑器,折叠所有的层次

然后全局搜索我们刚刚跳转的代码所在的位置

这里的行数为13325,直接倒数2000行,然后复制这些代码到浏览器新建的js脚本

运行并没有报错,然后在源代码获取
window.asrsea里面的各个参数,最后直接浏览器调试

然后本地调试会报错

直接在代码最前面加上
window =this;即可运行成功,如果是node环境就要加上window =global

总结

这里就要跟栈,就必须去找数据的来源判断是否是上一个栈传入的,然后一个一个跟,直到看到最后的加密地方。

posted @ 2024-12-11 17:24  Running_J  阅读(25)  评论(0编辑  收藏  举报