cookie反爬虫-acw系列参数逆向(诸葛找房)

前言

该文章为学习使用,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!如有侵权,请私信联系作者删除~

需求

目标网站:
aHR0cHM6Ly9zaC5lc2Z4aWFvcXUuemh1Z2UuY29tLw==

acw_sc__v2参数逆向

步骤

1、确认cookie设置位置
2、找cookie的生成位置
3、手扣JS代码

正文

通过charles抓包,可以看到刷新页面后做了2次请求,第二次成功返回数据

在第一次抓包的时候可以看到返回了一段JS文件,且有一个setcookie的关键子
在这里插入图片描述

在浏览器上,进入无痕模式,F12,再进入网页

在这里插入图片描述
会进入一个dubugger,看下面的调用堆栈,会进入到刚刚我们看到的JS代码。在首行,可以看到var arg1 = ‘AC43F9BABBA4C45BE6A72F63BAAFE2A92A3F7617’;
关于acw_sc__v2这个参数的逆向基本上都是这个写法,但arg1的值每次都可能会变
拉到最后,可以看到有一个set cookie,设置断点,看在哪里调用了它
在这里插入图片描述
断住之后,进上一个堆栈
在这里插入图片描述
再查看上一个
在这里插入图片描述

这里设了一个定时器,但里面的代码是一个16进制的值,可以控制台输出看一下
在这里插入图片描述
那么arg2,实际上就是我们要的参数的值

arg2 = _0x23a392_0x55f3(‘0x1b’, ‘\x7a\x35\x4f\x26’)

我们把JS代码扣出来并去还原,结果就出来了

String['prototype']['unsbox'] = function () {
    var _0x4b082b = [0xf, 0x23, 0x1d, 0x18, 0x21, 0x10, 0x1, 0x26, 0xa, 0x9, 0x13, 0x1f, 0x28, 0x1b, 0x16, 0x17, 0x19, 0xd, 0x6, 0xb, 0x27, 0x12, 0x14, 0x8, 0xe, 0x15, 0x20, 0x1a, 0x2, 0x1e, 0x7, 0x4, 0x11, 0x5, 0x3, 0x1c, 0x22, 0x25, 0xc, 0x24];
    var _0x4da0dc = [];
    var _0x12605e = '';
    for (var _0x20a7bf = 0x0; _0x20a7bf < this['\x6c\x65\x6e\x67\x74\x68']; _0x20a7bf++) {
        var _0x385ee3 = this[_0x20a7bf];
        for (var _0x217721 = 0x0; _0x217721 < _0x4b082b['length']; _0x217721++) {
            if (_0x4b082b[_0x217721] == _0x20a7bf + 0x1) {
                _0x4da0dc[_0x217721] = _0x385ee3;
            }
        }
    }
    _0x12605e = _0x4da0dc['\x6a\x6f\x69\x6e']('');
    return _0x12605e;
};

String['prototype']['hexXor'] = function (_0x4e08d8) {
    var _0x5a5d3b = '';
    for (var _0xe89588 = 0x0; _0xe89588 < this['length'] && _0xe89588 < _0x4e08d8['length']; _0xe89588 += 0x2) {
        var _0x401af1 = parseInt(this['slice'](_0xe89588, _0xe89588 + 0x2), 0x10);
        var _0x105f59 = parseInt(_0x4e08d8['slice'](_0xe89588, _0xe89588 + 0x2), 0x10);
        var _0x189e2c = (_0x401af1 ^ _0x105f59)['toString'](0x10);
        if (_0x189e2c['length'] == 0x1) {
            _0x189e2c = '\x30' + _0x189e2c;
        }
        _0x5a5d3b += _0x189e2c;
    }
    return _0x5a5d3b;
};

var arg1 = 'A9DF882855C7EB5523B3A853951DEFBF5A399A7E';
var _0x23a392 = arg1['unsbox']();
var _0x5e8b26 = '3000176000856006061501533003690027800375',
    arg2 = _0x23a392['hexXor'](_0x5e8b26);
console.log(arg2);

后续我们只要通过正则提取arg1,把arg1写活,就可以了

最后

欢迎联系作者交流更多

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值