js逆向--马蜂窝

声明

本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,否则后果自负,如有侵权,请联系作者立即删除!由于本人水平有限,如有理解或者描述不准确的地方,还望各位大佬指教!!


某蜂窝的加密的参数有两个,一个是cookie 加速乐的,访问html页面时需要用到。

另一个是_sn,访问接口时需要用到。

cookie--加速乐

直接上逻辑:

同一个页面,请求了三次才成功,前面两次状态码都是返回的521

第一次521请求返回一个cookie(__jsluid_h) ,并且从返回的script代码中可直接提取出请求第二次请求所需的cookie(__jsl_clearance1)

第二次521请求需要的cookie为__jsluid_h1和__jsl_clearance1,从返回的js代码中加密得到第三次所需的__jsl_clearance2

第三次200请求携带的cookie为__jsluid_h1和__jsl_clearance2

加密逻辑

第一次请求返回的结果如下

使用正则取出document.cookie的值,执行一遍,返回第二次请求所需的cookie(__jsl_clearance1)

第二次请求返回的结果如下

可以看出是ob混淆,可以选择使用ast解混淆,这里我选择补环境不选择扣算法,不需要解混淆。我们需要对第二次请求的结果进行小处理。在开头补上缺少的环境,即可得到_jsl_clearance_s。

这里我给大家送上通杀大部分加速乐的环境。

var window = {
    addEventListener: function() {
    },
    navigator: {
        userAgent: ''
    }
}
var document = {
    addEventListener: function(x, x1, x2) {
        if (x == 'DOMContentLoaded') {
            x1();
        }
    },
    attachEvent: function(x, x1) {
        if (x == 'onreadystatechange') {
            x1();
        }
    },
    cookie: ""
}

var location = {
    href: ''
}

var setTimeout = function(x,x1){} // 可以不用

接下来就是携带第二次请求生成和返回的 Cookie 去请求第三次

加速乐相对来说还是很简单的,只需要记住以下步骤还是很容易手撕的。

第一次请求时候,记得获取它的 set-cookie 值。

携带第一次请求生成和返回的 Cookie 去请求第二次。

携带第二次请求生成和返回的 Cookie 去请求第三次。

跟着 上来就是一把梭 将第三次的代码处理即可。

_sn参数

直接全局搜索是搜索不到的

直接搜搜不到的原因是因为_sn这个参数被混淆了。既然搜不到那我们可以通过调用栈来跟值。

定位到这就是生成_sn参数的函数。

进入cA函数。进行单步调试,发现i[j]函数打断点跟进去。

发现这里就是生成_sn参数和拼接的地方

跟进_0xe7fex35这个函数,发现_sn参数是通过请求参数,排序,加盐,最后通过md5加密截取2到12位得到。

算法复现

需要算法复现的大佬们可以前往https://www.ckcookies.cn/index.php/archives/8/获取

各位大佬觉得本文写的不错的话,可以一键四连哦。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值