js逆向-猿人学(14)备而后动-勿使有变

猿人学爬虫比赛第十四题《备而后动-勿使有变》

地址: http://match.yuanrenxue.com/match/14

感觉还好吧,至少没有炸内存。
js逆向-猿人学(14)备而后动-勿使有变_第1张图片


开无痕窗口,打开控制台,访问,分析数据包

在 http://match.yuanrenxue.com/api/match/14/m 接口中,有两个cookie参数
js逆向-猿人学(14)备而后动-勿使有变_第2张图片

sessionid可以和13题一样,通过response-headers获取。

这个mz 需要看一下,首先该接口返回的response有js内容,先用工具尝试还原下。

工具地址:http://tool.yuanrenxue.com/deobfuscator

js逆向-猿人学(14)备而后动-勿使有变_第3张图片
然后复制到编辑器中查看,复制出来的代码格式有点问题,需要自行修改下。

这里面没看出来什么东西,依旧出动我的扩展插件,如果还没有找到线索就得查源码了。

var code = function(){
     
    var org = document.cookie.__lookupSetter__('cookie');
    document.__defineSetter__("cookie",function(cookie){
     
        if(cookie.indexOf('mz')>-1){
     
            debugger;
        }
        org = cookie;
    });
    document.__defineGetter__("cookie",function(){
     return org;});
}

启动插件,清空cookie,刷新页面,等待拦截

js逆向-猿人学(14)备而后动-勿使有变_第4张图片
点一下右边的sp,发现这个b64_zw就是cookie的mz。
js逆向-猿人学(14)备而后动-勿使有变_第5张图片
b64_zw = G[’\x63\x57’ + ‘\x51\x54’ + ‘\x54’](btoa, z)

js逆向-猿人学(14)备而后动-勿使有变_第6张图片
选中 G[’\x63\x57’ + ‘\x51\x54’ + ‘\x54’] 点过去
js逆向-猿人学(14)备而后动-勿使有变_第7张图片

那么 :G[’\x63\x57’ + ‘\x51\x54’ + ‘\x54’] = function G(K, Y) {return K(Y);};

所以: b64_zw = G(btoa, z);

然后把代码扣下来就好了。
js逆向-猿人学(14)备而后动-勿使有变_第8张图片

这样 mz 参数就生成了。


但是在接口 http://match.yuanrenxue.com/api/match/14 中,还有一个cookie参数 m。
js逆向-猿人学(14)备而后动-勿使有变_第9张图片

老样子,改一下参数名,清除cookie,刷新页面,等待拦截
js逆向-猿人学(14)备而后动-勿使有变_第10张图片
依旧没有让我失望,继续调试
js逆向-猿人学(14)备而后动-勿使有变_第11张图片
点sp,跳到了13518行
js逆向-猿人学(14)备而后动-勿使有变_第12张图片
复制到console中,可以发现这段就是生成m的方法了。
js逆向-猿人学(14)备而后动-勿使有变_第13张图片

接下来就是分解这段,开始拼代码,删除无用的补充需要的,就不再写了。

你可能感兴趣的:(Js逆向)