拉钩参数加密过程:data

打开拉钩在招聘页面翻两页会发现一个接口positionAjax,打开看看

 

发现payload加密了,返回的数据也加密了,js调试一下找出加密方法

(o = e.body) && (b = 
(0,A.q6)(JSON.stringify((0,D.$Z)("?".concat(o)))),
e.body = "data=".concat(encodeURIComponent(decodeURIComponent(b))));

e.body是待加密的参数

A.q6是加密函数,追进去看一下这个函数

Dt = ""
Ot = Et.enc.Utf8.parse("c558Gq0YQK2QUlMc")
Rt = function(t) {
Dt = Et.enc.Utf8.parse(zt("aesKey")),
t = Et.enc.Utf8.parse(t);
t = Et.AES.encrypt(t, Dt, {
    iv: Ot,
    mode: Et.mode.CBC,
    padding: Et.pad.Pkcs7
  });
  return t.toString()
};

t = e.body

Ot是固定的不用管

zt("aesKey")这个函数需要进去看一下

发现这个函数是获取了sessionStorage里面的aesKey的值 

获取这个值的方法有两种

1.webdriver能get到值

2.js里面能找到

webdriver效率过低,选js,在aes加密方法的上面发现了设置aeskey值的函数:Ft函数

At = function() {
var t = function(t) {
    for (var e = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=", r = "", n = 0; n < t; n++) {
        var i = Math.floor(Math.random() * e.length);
        r += e.substring(i, i + 1)
    }
    return r
}(32);
zt("aesKey") || Ft("aesKey", t);
Ft = function(t, e) {
    sessionStorage.setItem(t, e)
}

 这样所有的参数就都拿到了,execjs库调用拿到的js就可以得到data加密后的参数,请求到加密数据

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值