当前位置: 首页 > news >正文

加速乐(__jsl_clearance_s)动态cookie生成分析实战

文章目录

  • 一、写在前面
  • 二、抓包分析
  • 三、逆向分析

一、写在前面

加速乐(JSL)是阿里推出的一项反爬虫服务,其生成cookie的原理基于浏览器的行为特征

在这里插入图片描述

  我们知道普通网站生成cookie是在请求时生成,而它先生成cookie,然后向服务器请求同一个网址,通过JS生成cookie覆盖掉原来的cookie,然后带着最后生成的cookie请求网址

这种cookie动态生成的网站是无法直接看到JS文件的,网站不让浏览器缓存JS文件,这样就可以防止被轻易拿到JS代码分析。也是一种反爬虫得手段

分析站点

aHR0cHM6Ly93d3cubXBzLmdvdi5jbi9uMjI1NDA5OC9uNDkwNDM1Mi9pbmRleF8zNDk3MzQxXzcwLmh0bWw=

二、抓包分析

在浏览抓包是看不到什么有用的东西,这里我们使用抓包工具抓一下:
在这里插入图片描述

可以看到上图中有两个URL是空响应,是在正常响应之前触发的。这两个URL做的一件事就是设置cookie,最后被第三个URL给覆盖

第一个URL设置了名为__jsluid_s的cookie:

在这里插入图片描述

第二个uURL又添加了名为__jsl_clearance_s的cookie:
在这里插入图片描述

最后一个URL请求重新设置了__jsl_clearance_s的cookie:
在这里插入图片描述

仔细比对会发现第三个URL已经返回响应了,但是返回的内容是纯HTML文本内容,没有任何JS代码,这是因为这个网站做了处理,不让浏览器缓存JS文件

source里面查看缓存文件是没有JS文件的,通过上面抓包分析可知_jsl_clearance_s的值是动态生成的

__jsluid_s的cookie值为:

2c352ae5536707728ce997d91eb1f040

抓包拿到的第一次请求响应的JS代码如下:

document.cookie=('_')+('_')+('j')+('s')+('l')+('_')+('c')+('l')+('e')+('a')+('r')+('a')+('n')+('c')+('e')+('_')+('s')+('=')+((+true)+'')+(3+3+'')+(1+[0]-(1)+'')+(-~1+'')+(2+3+'')+(-~(8)+'')+(3+3+'')+(-~1+'')+(2+5+'')+(-~(8)+'')+('.')+((1<<3)+'')+(3+6+'')+(1+5+'')+('|')+('-')+(+!+[]+'')+('|')+('J')+('W')+('f')+('m')+((+false)+'')+('p')+('X')+('K')+('B')+('e')+('u')+('O')+('c')+('k')+('m')+('b')+('V')+('F')+(-~(8)+'')+('X')+('r')+('I')+('v')+('x')+('o')+('E')+(~~{}+'')+('%')+(-~[2]+'')+('D')+(';')+('m')+('a')+('x')+('-')+('a')+('g')+('e')+('=')+((1|2)+'')+(6+'')+((+[])+'')+(~~{}+'')+(';')+('p')+('a')+('t')+('h')+('=')+('/');location.href=location.pathname+location.search

可以看到每一次刷新网站,document.cookie生成cookie都是不一样的,如下图所示:

在这里插入图片描述

仔细对比上面两个生成cookie所抓包拿到的JS代码,会发现是有差别的,所以每次得到的cookie是不一样的

接下来,我们看第二次请求的URL。它是带上了第一次生成的cookie去请求的,响应如下图抓包所示:

在这里插入图片描述

响应的JS代码我们推测是用来生产cookie的,第三次请求URL时,这段JS代码会生成__jsl_clearance_s的cookie覆盖掉

接下来就是第三次请求,访问最终正常的网站URL。当第三次请求url时,程序会执行第二次请求时的JS代码,然后生成cookie覆盖掉第二次请求__jsl_clearance_s的cookie,最后带着生成的cookie请求服务器

三次请求都是针对一个URL,最后一次正常。中间一系列对Cookie的操作,主要目的就是为了对抗爬虫

三、逆向分析

接下来我们需要做的就是对第二次请求响应的JS代码进行分析,逆向__jsl_clearance_s的cookie值

在这里插入图片描述

这里把JS扣出来,这里我不贴代码了,几百行呢!分析如上截图所示!下面我直接采用补环境的方式本地调试混淆的JS代码

在这里插入图片描述

提示我们window未定义。因为我现在是在本地调试不在浏览器,所有没有DOM跟BOM,这是我们需要我们补的

找到window定义的代码:
在这里插入图片描述

控制台调试打印如下:
在这里插入图片描述

得到我们的window代码如下:

window['navigator']['userAgent'] = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36'

补到JS里面的环境如下:

var window = {navigator:{userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36'}
}

继续运行JS代码,发现提示documentlocation都需要补,是没有定义的,最终需要补代码如下:

var document = {cookie: ''};var location = {href:''
};var window = {navigator:{userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36'}
};

补完环境线下环境运行如下,上面调试的JS代码都是动态混淆的,大家调试的时候根据自己扣到的代码进行即可:

在这里插入图片描述

至此我们就拿到了__jsl_clearance_s

  好了,到这里又到了跟大家说再见的时候了。创作不易,帮忙点个赞再走吧。你的支持是我创作的动力,希望能带给大家更多优质的文章

http://www.lryc.cn/news/135606.html

相关文章:

  • 启动Vue项目踩坑记录
  • vue-pc上传优化-uni-app上传优化
  • 【计算机视觉|生成对抗】StackGAN:使用堆叠生成对抗网络进行文本到照片逼真图像合成
  • 跟随角色镜头时,解决地图黑线/白线缝隙的三种方案
  • redis7高级篇2 redis的BigKey的处理
  • 启英泰伦通话降噪方案,采用深度学习降噪算法,让通话更清晰
  • 将SonarLint集成到Git
  • 【Jenkins】rpm方式安装Jenkins(2.401,jdk版本17)
  • vue3跳转统一页面,path一样,传递的参数不一样时页面不刷新
  • 升级还是不升级?iPhone 15和iPhone 14 Plus性能比较
  • 关于LED电子显示屏幕的显示功能
  • 计算机视觉--利用HSV和YIQ颜色空间处理图像噪声
  • Android Studio中引入MagicIndicator
  • webrtc学习(六)重要信令级时序图
  • Leetcode刷题笔记--Hot21-30
  • 【MyBatis八股】MyBatis面试题
  • Apache Hudi初探(二)(与flink的结合)--flink写hudi的操作(JobManager端的提交操作)
  • Office ---- excel ---- 怎么批量设置行高
  • Wlan——STA上线流程与802.11MAC帧讲解
  • HTTP的并发连接限制和连接线程池
  • 【从零学习python 】45.Python中的类方法和静态方法
  • 基于 VisualFoxPro 环境开发应用程序的过程
  • SpringBoot整合Quartz,实现数据库方式执行定时任务
  • java中多个list怎么用List表示?
  • postgresql 数据排序
  • 虚拟机 net、桥接、主机三种网络模式寻根问底
  • python代码——批量将PPT转换成长图
  • C++信息学奥赛2046:【例5.15】替换字母
  • 每天一道leetcode:1306. 跳跃游戏 III(图论中等广度优先遍历)
  • 76参考链接