首页 > 社交 > 科普中国

反混淆刷题平台 Web 第二题:js 混淆,动态 cookie

常驻编辑 科普中国 2022-11-11 猿人   爬虫   控制台   函数   提示   位置   参数   代码   未定义   程序   动态   内容   详细
IOU拜客生活常识网

document[$dbsm_0x42c3(qqLQOq, iOiqII) + $dbsm_0x42c3(q1IoqQ, QQlLlq)] = _0x5500bb['NtD' + 'rC'](_0x5500bb[$dbsm_0x42c3(qqqQoq, oqQiiO) + 'me'](_0x5500bb[$dbsm_0x42c3(Ioo0ql, olq0Oq) + 'me'](_0x5500bb[$dbsm_0x42c3(qOIqQi, OOqIQi) + 'rD'](_0x5500bb[$dbsm_0x42c3(Q1qoqQ, lILOOq) + 'rD'](_0x5500bb[$dbsm_0x42c3(qOO1Q0, oiqlQQ) + 'rD'](Ql1OO0, _0x5500bb['zvg' + 'lw'](_0x3c9ca8)), Qoqq0I), _0x5500bb[$dbsm_0x42c3(iqOiQ0, QOiq0Q) + 'Gk'](_0x313b78, _0x160e3a)), lOo0QQ), _0x160e3a), _0x5500bb[$dbsm_0x42c3(qiOOiO, liQIoQ) + 'NZ']),

控制台打印后可知这里就是 cookie 中 m 参数值生成的位置:IOU拜客生活常识网

IOU拜客生活常识网

在控制台中进一步打印分析下其他部分含义:IOU拜客生活常识网

IOU拜客生活常识网

m 参数值的格式如下:IOU拜客生活常识网

0ef478cf61e0749d7444c7997c917679|1663213224000

可以依此将代码进行简化:IOU拜客生活常识网

_0x5500bb[$dbsm_0x42c3(iqOiQ0, QOiq0Q) + 'Gk'](_0x313b78,_0x160e3a) + lOo0QQ + _0x160e3a

控制台打印验证,结果匹配:IOU拜客生活常识网

IOU拜客生活常识网

接下来先跟进到 _0x5500bb[$dbsm_0x42c3(iqOiQ0, QOiq0Q) + 'Gk'] 中,鼠标选中后点击进入:IOU拜客生活常识网

IOU拜客生活常识网

在该文件的第 3911 行,内容如下:IOU拜客生活常识网

_0x434ddb[$dbsm_0x42c3(Iooo0l, Qq1oqI) + 'Gk'] = function(_0x105ffe, _0x733be0) {
            return _0x105ffe(_0x733be0);
        }

返回值为 _0x105ffe(_0x733be0),该函数传入的参数为 _0x313b78_0x160e3a,所以可以进一步改写:IOU拜客生活常识网

_0x313b78(_0x160e3a) + lOo0QQ + _0x160e3a

_0x160e3a 为时间戳,因此 m 参数的值是将时间戳作为参数传入 _0x313b78 函数后加密得到的,所以需要进一步跟进到 _0x313b78 函数定义的位置,同样鼠标选中,点击即可跳转到第 4933 行,到 node 环境中调试,初步代码为:IOU拜客生活常识网

function _0x313b78(_0x575158, _0x1fa91a, _0x1cf5de) {
    // 以下部分内容过长,此处省略
    // 完整代码关注 GitHub:https://github.com/kgepachong/crawler
}

var _0x160e3a = Date.parse(new Date());
var m = _0x313b78(_0x160e3a) + lOo0QQ + _0x160e3a;

console.log(m);

运行后会提示 _0x5500bb 未定义,到原文件中 ctrl + f 局部搜索这个函数,在第 3940 行:IOU拜客生活常识网

_0x5500bb = _0x434ddb

补上运行后会提示 _0x434ddb 未定义,搜索后发现 _0x434ddb 在第 2817 行定义为一个空对象,后面向其中传入了很多值,类似于一个大数组,不能只补 _0x434ddb = {};,需要把传值部分补进去,不然后面运行时会出现些报错,经测试有的部分不要也可以,但是细扣就很麻烦了,直接全补即可,这就很多了,从第 2817 行一直扣到第 3939 行,补完后接着运行程序,这次又提示 $dbsm_0x42c3 未定义,接着搜找其定义位置,在第 94 行,补了后提示 OooIi1 未定义,在第 209 行,需要从第 209 行到第 2816 行全部补上,不然会提示其中某一个未定义,同样的,虽然经调试有的不需要也行,但是一个个调麻烦且没有必要,补完后接着运行又会提示

相关阅读:

  • 华夏人类源头,是如何从“古猿”演变成原始文明的
  • 立秋,浅品秋语诗词
  • 浅浅地大胆地聊聊进化论
  • 潮牌速生速死,已收割不动“年轻韭菜”
  • 世界上第一个死亡的人,猿人(宗教说法中是亚当和夏娃)
  • 《铁血战士2》中的头骨是什么?他们还猎杀过什么?
  • 江苏南京江宁区九大旅游景点
  • 史前文明的遗迹?专家发现50万年前刻字的贝壳,至今还不清
  • 嘴巴突出像猿人?医生说:两种“突嘴”形成主要都与这块骨
  • 著名雕塑家刘若望:用热血唤醒消逝的生命
    • 网站地图 |
    • 声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。文章内容仅供参考,不做权威认证,如若验证其真实性,请咨询相关权威专业人士。