4回答

1收藏

某招聘网站__zp_stoken__ 参数解析

信息分享 信息分享 4468 人阅读 | 4 人回复 | 2019-11-26


个人需求爬取一些招聘数据


发现某B直聘 网站获取某职位列表页的数据时,cookie中,必须生成   __zp_stoken__  参数的 name value


才能正确访问到列表页
function ABC() {    this['i0'] = 0x0;    this['d'] = [this];}
通过调用ABC对象内的_0x2ab7('0x60')方法的 z 方法(每天都不一样)


z方法的参数_0xc894dc: 访问某个链接可以获取到(服务端生成)


z方法的参数_0x32478b: 时间戳
javascript ABC[_0x2ab7('0x60')]['z'] = function(_0xc894dc, _0x32478b)
 {
     var _0x1346ff = { 
            'UzfvS': function(_0x1de77d, _0x19cf65) { 
                       return _0x1de77d == _0x19cf65;       
                        },
             'sOKer': _0x2ab7('0x61'),
             'EFaah': _0x2ab7('0x62'),
             'HXECB': function(_0x10a393, _0xb190d9, _0x2f7553) {
                         return _0x10a393(_0xb190d9, _0x2f7553);        
                         },
             'XyGFz': function(_0x2e2d1b, _0x2802ea) { 
                        return _0x2e2d1b + _0x2802ea;        
                        }    
      };    
   try {
          if (document && _0x1346ff[_0x2ab7('0x63')](_0x1346ff[_0x2ab7('0x64')], typeof document[_0x2ab7('0x65')])) {
              z = _0xc894dc;
              t = _0x32478b;
          } else {
              z = _0x1346ff[_0x2ab7('0x66')];
          }    
       } catch (_0x53e803) {
               z = _0x1346ff[_0x2ab7('0x66')];
       }    
    return _0x1346ff[_0x2ab7('0x67')](zg_, this, _0x1346ff[_0x2ab7('0x68')](_0xc894dc[_0x2ab7('0x69')], 0xb)); 
    }
最后的return 就是返回的__zp_token__生成值
javascript return _0x1346ff[_0x2ab7('0x67')](zg_, this, _0x1346ff[_0x2ab7('0x68')](_0xc894dc[_0x2ab7('0x69')], 0xb));
中间调试的过程就是各种函数调来调去,补充函数就行了,因为时间太久,细节的坑有些忘记了




b直聘的工程师应该是借鉴了sojson 站的js混淆加密方法(obfuscator),本人愚见,如有失误,请大佬斧正.




如果有最新的知识,请在评论区交流.
分享到:
回复

使用道具 举报

回答|共 4 个

zengyd

发表于 2019-11-27 10:03:02 | 显示全部楼层

修正下排版,大兄弟,你这种格式,你自己看的不脑疼?
回复

使用道具 举报

葫芦娃他爷爷啊

发表于 2019-11-27 10:54:32 | 显示全部楼层

排版是编辑框的问题吧,得俩回车...
回复

使用道具 举报

gzwgq222

发表于 2019-12-1 12:07:19 | 显示全部楼层

用无头浏览器如 puppeteer 可以不用破解 js 混淆加密,让某B检测不出来就可以进去了,刚弄出来了
回复

使用道具 举报

何老弟

发表于 2019-12-4 16:15:45 | 显示全部楼层

这网站的js不难,就是跑起来有稍慢,用无头也是可以的
回复

使用道具 举报