17track接口逆向分析


没有放修改后的完整代码,纯粹的学习,这网站不错,本来就是免费查询,还支持40个单号一起查。谁有更好方法找到_0x4f3f里内存暴破,欢迎指教啊!

调试

17track的快递查询接口,可以通过调试工具看到请求,但是直接通过POST工具是没有结果的,最后测试需要加上Last-Event-ID这个cookie
在这里插入图片描述
看了网页加载的js文件,最终只有一个加密的track.min.js,而且发现非常可疑的setCookie,还有Last-Event-ID字符。第一行是个数组,接下一共两个自执行的匿名函数。

(function(_0x2297ee, _0x5f41f3) {
   
......
}(_0x50c7, 0x9f));
......
(function() {
   
    var _0x10f375
    ......
    _0x4cec2b();
}());

对这两个函数下断点,clear storage刷新然后一步一步调试。这里只要调用了函数的我们都对函数下断点。当跟到_0x4f3f这个函数的时候,发现很多地方都调用了这个函数,对返回下断点发现是返回的字符串。就把断点取消了继续跟,不然手要按软。第二个自执行函数最后调用的_0x4cec2b,_0x4cec2b最后又调用_0x3966d3,当断到_0x3966d3的时候已经能看到请求信息了,_0x164a16就是post的json,_0x152eb7就是一个ajax请求
在这里插入图片描述
跟到_0x3966d3的时候,可以看到前两个参数是函数,最后是一个数字。继续一步一步走,注意_0x126b58 这个值是在变化的。
在这里插入图片描述
最后在这里找到了Last-Event-ID,拿去post试一试,成功。

分析代码

我们还原设置Last-Event-ID的代码。

document[_0x4f3f('0x67', 'x3Lg')] = _0x2ec18e[_0x4f3f('0x68', '^p2Z')](_0x316f08, '=') + _0x472ff2[_0x4f3f('0x4d', 'uFIh')]('') + _0x2ec18e[_0x4f3f('0x69', 'aeh^')] + _0x1720d7[_0x4f3f('0x6a', 'LaH7')](); 

直接在控制台调用_0x4f3f函数得到

document["cookie"] = _0x2ec18e["GAOJi"]('Last-Event-ID', '=') + _0x472ff2["join"]('') + _0x2ec18e["FPaVy"] + _0x1720d7["toGMTString"](); 

_0x472ff2["join"]('')//就是我们要的Last-Event-ID

_0x472ff2是重要变量,复制所有加密代码,格式化,放到新网页执行。哈哈哈,崩溃了。
在这里插入图片描述
看来是有检测代码。这里我不知道怎么才能下断点,只有一步一步故意写错代码,看是先崩溃还是先报错确定了检测代码位置。有大佬有好方法没?

_0x3184d0['prototype']['yzecjS'] = function() {
   
                var _0x5e1a47 = new RegExp(this['IbesCh'] + this['kRbSMK']);
                var _0x44235e = _0x5e1a47['test'](this['ZDEFCw']['toString']()) ? --this['LoqXko'][0x1] : --this['LoqXko'][0x0];//这里是一个正则匹配,把_0x44235e 设为-1就跳过了
                return this['NUSOYG'](_0x44235e);
            }

刷新执行,又报新的错误,这个错误直接显示了位置,下断点跟原网页对比

var _0xd2c455 = function(_0x570d92) {
   
                var _0x6d545d = ~-0x4 >> 0x1 + 0xff % 0x0;
                if (_0x570d92['\x69\x6e\x64\x65\x78\x4f\x66']((!![] + '')[0x3]) !== _0x6d545d) {
    //这个判断改为不成立即可跳过
                    _0x10cf6b(_0x570d92);
                }
            };

到这里,继续,还是报错,这个错误简单明了缺少jquery,在网页加上。搜索_0x3966d3 找到调用它的地方。

        _0x2ec18e[_0x4f3f('0x86', 'oD72')]($, document)[_0x4f3f('0x87', 'tG@(')](function(_0x2c3354, _0x28d1d7, _0x152eb7) {
   
            if (_0x152eb7[_0x4f3f('0x88', 'Ho1%')][_0x4f3f('0x89', 'klod')](_0x4f3f('0x8a', 'L*ZS')) && _0x152eb7['data']) {
   
                _0x567d6b = _0x152eb7[_0x4f3f('0x8b', 'oD72')];
                var _0x164a16;
                try {
   
                    _0x164a16 = JSON['parse'](_0x567d6b);
                } catch (_0x198faf) {
   
                    if (_0x2ec18e[_0x4f3f('0x8c', 'bv*^')]
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值