js逆向-某岸网络登录参数

声明

本文仅供学习参考,请勿用于其他途径,违者后果自负!

前言

目标网站:aHR0cHM6Ly9wYXNzcG9ydC5pd2dhbWUuY29tL3Nzby9sb2dpbnBhZ2UuZG8=
接口:aHR0cHM6Ly9wYXNzcG9ydC5pd2dhbWUuY29tL3Nzby9sb2dpbi5kbw==
目标参数:s

参数分析

post请求,form data的数据是一个s。
在这里插入图片描述
今天逆向分析的目标,一起看一下这个s是如何加密生成。

在Init中找到堆栈,打上断点,重新请求。
在这里插入图片描述
可以在这里清楚的看到data: "s=" + c
此时的c已经生成。
在这里插入图片描述

所以接着向上找堆栈,向上一层就可以定位到c的生成。
在这里插入图片描述
接下来把把我们需要的代码扣下来做一些简单修改。
其中k是固定数组,直接拿下。
$wnd是window对象,在这里可以不要。

function getS(user, pwd) {
    const k =  [102, 55, 52, 53, 48, 101, 99, 51, 53, 56, 55, 50, 55, 101, 102, 99, 50, 51, 50, 57, 52, 50, 54, 100, 56, 56, 56, 102, 48, 54, 100, 52];
    var b = `{"identityId":"${user}","credential":"${pwd}","captcha":"","capId":"1c738643f73d4951835a63acb15e79d2","accountType":"PERSONALITY","gotourl":"","ls":"","pid":""}`;
    var d = btoa(b);
    var b = CryptoJS.MD5(d).toString() + b;
    var d = String.fromCharCode.apply(null, k);
    var d = CryptoJS.enc.Hex.parse(d);
    var b = CryptoJS.AES.encrypt(b, d, {
        mode: CryptoJS.mode.ECB
    }).ciphertext.toString();
    return btoa(b);
}

其中参数capId是服务器下发的一个变值,通过寻找发现是一个ajax请求。
在这里插入图片描述
通过搜索url也可以找到对应的数据包,这里不做多解释

然后使用了btoa库和crypto-js,这里就没有扣代码了。

最后验证结果。

在这里插入图片描述
在这里插入图片描述
完全一致,也就是说明我们的代码没有问题。

今天的目标就完成了。

Alt

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值