yjj某数后缀生成(1-15,js逆向)

news/2024/7/19 10:10:04 标签: javascript, 爬虫
目标网站:aHR0cHM6Ly93d3cubm1wYS5nb3YuY24vZGF0YXNlYXJjaC9zZWFyY2gtcmVzdWx0Lmh0bWw=

看这篇文章的前提是:读者已经成功请求到了200页面

一、抓包分析
打开F12,首先映入眼帘的是无限debugger,这是那三个经过ob混淆过的js做的手脚,这里我是用本地替换的方法过的(即找到启动debugger的函数然后把他删掉),在文末我会放出那三个js的代码(util.js、api.js、ajax.js)

然后需要解决的是某数独有的debugger,下面是解决方法
在这里插入图片描述
在这里插入图片描述

把这些反调过了之后就开始真正的抓包分析需要逆向的参数了
在这里插入图片描述
可以看到有三个参数是加密过的(sign、hKHnQfLv、8X7Yi61c),那就先看的sign,第一个解决了通过一些蛛丝马迹找到另外两个参数的加密位置

二、跟栈分析
sign参数生成:

先打个xhr断点
在这里插入图片描述
然后刷新一下,跟到箭头所指的位置
在这里插入图片描述
在sign这行打个断点再刷新一下,进到jsonMD5ToStr方法里,可以看到这是个平坦流,直接在return处下断,就可以知道其实他是对所请求的url进行了encodeURIComponent操作然后再MD5一下(经过测试该加密没有经过魔改)
在这里插入图片描述
sign参数解决后我们来看下剩下两个比较重要参数

hKHnQfLv、8X7Yi61c参数生成:

回到一开始下断的地方
在这里插入图片描述
这个this是XMLHttpRequest,现在很多站都喜欢对XMLHttpRequest.send和XMLHttpRequest.open进行暗改,从而让我们很难找到加密参数生成的位置(比如某数,某音)

那我们在控制台打印验证一下
在这里插入图片描述
这里的话,他是在XMLHttpRequest.open做手脚的,我们直接跟进来下断

在这里插入图片描述

可以看到原始数据经过_$45后,就有hKHnQfLv、8X7Yi61c了,我们继续跟进去看看
在这里插入图片描述
上图中红色框部分都是对url进行了一些判断操作(如果你的采集接口只有一个的话可以写死)

下面这句是对url进行一个toUpperCase操作,再通过HD方法生成16位数组,这个方法在生成200页面的时候用到所以不用扣

var _$L0 = _$HD(_$pi(_$6X(_$oa._$Gl + _$4p)));

然后携带刚才生成的16位数组进入生成 hKHnQfLv 的方法里
在这里插入图片描述
下面是这个方法的具体解释

function _$Sb(_$P7, _$2o) {  //_$2o是上面所生成的16位数组
    var _$DP = [];
    var _$jJ = '';
    var _$4p = _$J7(_$7b()); //这里生成32位数组,这两个方法在生成200页面的时候都用到 不用扣
    _$DP = _$DP[_$6_[1]](_$2o, _$P7, _$4o || 0, _$4p); //这里将16位数组和32位数组拼接 生成50位数组
    var _$L0 = _$14(744, 6, true, _$DP);  //将50位数组传入生成hKHnQfLv
    var _$Vo = _$Ow + _$L0;
    _$ca = _$RD(_$k$(_$Vo), 2);  //跟8X7Yi61c有关
    return _$QZ[_$6_[5]](_$jJ, _$Eu, _$6_[6], _$Vo);
}

我这里就不跟进_$14方法再演示了,因为这个方法就是生成200页面的逻辑
这是跟完128位数组后面的操作截图
在这里插入图片描述

继续,我们跳出_$14方法,下面这句代码注意,这两个方法需要去扣,200页面的逻辑没用到

_$ca = _$RD(_$k$(_$Vo), 2);  //这里根据生成hKHnQfLv后的值经过两个方法生成一个字符串,这很重要 因为8X7Yi61c的生成跟这个小小的字符串有关

到此 hKHnQfLv 参数已经完毕,我们然后跳出_$Sb方法,来到这
在这里插入图片描述
箭头所指的就是生成 8X7Yi61c 的函数,跟进去
在这里插入图片描述
跟进来后可以看到他先给url加了点东西,然后Bg方法就是生成8X7Yi61c的,继续跟进来
在这里插入图片描述
这里的_$3V是需要自己扣的,里面需要用到window.ts的东西(第19个),还有_$6w方法也是需要扣的,这几个方法都是相对独立的,跟其他方法没有什么关联,所以比较好解决

其他的一些小细节只能靠你们自己去踩坑了,篇幅太长了,不想写了溜了溜了

三、请求验证

在这里插入图片描述


http://www.niftyadmin.cn/n/1541912.html

相关文章

新的一年在技术上的打算。

2010里,既然是技术出身,在技术方面,就应该有所打算吧,我的计划如下,希望自己在2010能够坚持并完成自己在技术方面的计划: 1. 系统琢磨研究Perl、Catalyst及Perl 6的知识点; 2. 继续深入Access…

一个很像某数的cookie加密(js逆向)

网站:aHR0cHM6Ly93d3cuanZpYy5lZHUuY24vemJiLzcwOS9saXN0OC5odG0前言:这是一个很像某数反爬的站,同样的412然后200,同样的cookie加密,甚至部分算法都是一模一样的,当然这个难度比某数低很多 一、hook cook…

二叉树的前序、中序、后序遍历(非递归实现)-额外-python

栈版本 前序遍历 # Definition for a binary tree node. # class TreeNode: # def __init__(self, val0, leftNone, rightNone): # self.val val # self.left left # self.right right class Solution:def preorderTraversal(self, root: Tre…

oracle添加各种约束条件

--非空约束ALTER TABLE studen MODIFY (studentname NOT NULL);--唯一约束(身份证号) ALTER TABLE student ADD CONSTRAINT UK_student_identityCard UNIQUE (identitycard); --默认约束(地址) ALTER TABLE student modify addres…

爱qiyi滑块(2-23,js逆向)

网址:aHR0cHM6Ly93d3cuaXFpeWkuY29tLw一、整体流程分析 爱qiyi整个登录滑块流程主要分五步: 1、访问dfp_pcw/sign拿到dfp参数 2、访问login.action拿到token参数 3、访问sbox_init_key拿到sig,sid,sr参数 4、访问verifycenter/initpage拿到滑块相关数据…

最长有效括号-动态规划32-python

python # # # param s string字符串 # return int整型 # class Solution:def longestValidParentheses(self , s ):# write code hereif not s:return 0n len(s)dp [0] * nfor i in range(1, n):if s[i] ):if s[i-1] ( and i > 2:dp[i] dp[i-2] 2else:if s[i-dp[i-…

【Demo】CSS3元素旋转、缩放、移动或倾斜

CSS3元素旋转、缩放、移动或倾斜 代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Document</title><style type"text/css">*{margin: 0;padding: 0;}.contain…

虎ya登录滑块(3-6,js逆向)

网站地址:aHR0cHM6Ly93d3cuaHV5YS5jb20v一、整体流程分析 1、访问df/token链接拿到encryptWebDeviceFeature加密相关的encryptSeed、token 2、访问df/collect链接拿到sdid 3、访问v2/smsCode链接拿到滑块链接(slide_url,另一个窗口) 4、访问3中返回的slide_url 5、访问safe_au…