JS逆向实战14——猿人学第二题动态cookie
声明
本文章中所有内容仅供学习交流,抓包内容、敏感网址、数据接口均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请联系我立即删除!
目标网站
网站分析
首先已经告诉了我们这个网站是动态cookie,所以我们首先打开devtools看看哪个cookie,然后我们用代码运行下


然后发现cookie的有效期很短,我们搜索有没有set_cookie 发现并没有

然后我们用fiddler 抓包看看
我们搜索这个cookie的值

有时候可能hook不到值,没关系 点击下一页去hook 不要刷新去hook
发现是从第二请求开始的,所以cookie 大概率是第一个请求哪里生成的 cookie

cookie断点分析
在次之前,我们打开浏览器中去找cookie的生成点。

打开脚本 按步追栈追到这个cookie生成的文件中。也就是第一个请求发送的地方
然后我们放开断点。

走到m这个断点的地方。然后向下追栈

然后就找到了m的生成地址了
把他们都替换掉

document["cookie"] = _0x1451c6['FZXLU'](_0x1451c6['FZXLU'](_0x1451c6['TWByt'](_0x1451c6['eKhua'](_0x1451c6['eKhua'](_0x1451c6['zzVOs']('\x6d', _0x1451c6['PUMJe'](_0x52509a)), '\x3d'), _0x1451c6['kbttD'](_0x57de99, _0x4b00b1)), '\x7c'), _0x4b00b1),
_0x1451c6['GBiTC']);

再分解


由此可知
_0x1451c6['kbttD'](_0x57de99, _0x4b00b1) + "|" + _0x4b00b1
'6c0a673aa5ac9a0d6d06d93c80e399dc|1685066745000'
- _0x1451c6['kbttD'](_0x57de99, _0x4b00b1) : cookie
- _0x4b00b1: 时间戳
扣代码

====>

可改写成
_0x1f5c0f['uHywV'] = function(_0x167a6d, _0x403944) {
return _0x167a6d < _0x403944;
}
;
后面就是逐步扣代码
注意
- 扣的时候一定要有耐心
- 注意有坑,正则校验 直接搜索 new Regex


这是文中的两处正则格式化校验 修改成如下
1.. 'removeCookie': function() {return 'dev';},
2. this['husxWe'] = function() {return 'newState';}
- node 环境定义
var window = global;
浏览器环境检测 需要定义一个navigator



可见这个是浏览器指纹
有两种解决方案- 直接把这个地方替换成 ''

因为浏览器执行出来的也是空 - 重新伪装navigator 补环境
- 直接把这个地方替换成 ''
history 未被定义 console.log 被重写
等到最后打印的收会报错

这里也有两种解决方案在最开始的时候定义console.log 把console.log 赋值给另一个值
result = console.log;
- 用console.warn,console.debug (总有一个没被改写)
完成
后面就是缺啥补啥 其实非常麻烦。
然后补完之后运行我们的代码

成功生成m的值,然后我们丢到python中运行

可以成功运行
JS逆向实战14——猿人学第二题动态cookie的更多相关文章
- JS逆向实战13——某市公共资源交易中心Cookie混淆加密
"本文地址:https://www.cnblogs.com/zichliang/p/17346860.html 目标网站 aHR0cDovL2xkZ2d6eS5obmxvdWRpLmdvdi ...
- JS逆向实战8——某网实战(基于golang-colly)
其实本章算不上逆向教程 只是介绍golang的colly框架而已 列表页分析 根据关键字搜索 通过抓包分析可知 下一页所请求的参数如下 上图标红的代表所需参数 所以其实我们真正需要的也就是Search ...
- JS逆向实战6-- x轴 y轴 过点触验证码
点触验证码是一种常见的反爬手段 解决方案有两种:一种是直接解决,这需要深度学习机器学习等图像处理技术,以大量的数据训练识别模型,最终达到模型足矣识别图片中的文字提示和应该点击的区域之间的对应关系. 这 ...
- JS逆向实战4--cookie——__jsl_clearance_s 生成
分析 网站返回状态码521,从浏览器抓包来看,浏览器一共对此地址请求了三次(中间是设置cookie的过程): 第一次请求:网站返回的响应状态码为 521,响应返回的为经过 混淆的 JS 代码:但是这些 ...
- JS逆向实战3——AESCBC 模式解密
爬取某省公共资源交易中心 通过抓包数据可知 这个data是我们所需要的数据,但是已经通过加密隐藏起来了 分析 首先这是个json文件,我们可以用请求参数一个一个搜 但是由于我们已经知道了这是个json ...
- JS逆向实战9——cookies DES加密混淆
cookie加密 DES 混淆 目标网站:aHR0cHM6Ly90bGNoZW1zaG9wLnlvdXpoaWNhaS5jb20vbWFpbi90ZW5kP05vdGljZUNhdGVJZD0xJk5 ...
- JS逆向实战10——某集团RSA长加密
由于本网站较为特殊 目标网站加密与其他稍有不同 目标网站 68747470733a2f2f65632e6d696e6d6574616c732e636f6d2e636e2f6f70656e2f686f6 ...
- JS逆向实战12——某店 captchaToken 参数 加密
今天爬取的是网站需要模拟登陆 目标网站 aHR0cHM6Ly9wYXNzcG9ydC55aGQuY29tL3Bhc3Nwb3J0L2xvZ2luX2lucHV0LmRv 浏览器抓包分析 随便输入一堆假 ...
- mitmproxy第一次尝试-猿人学第九题
启动 mitmdump -s http_proxy.py -p 9000 替换js代码 # -*- coding: utf-8 -*- import re main_url = 'http://mat ...
- JS逆向实战7-- 某省在线审批网站params 随机生成
参数分析 我们首先通过抓包 发现这个就是我们所需要的数据 然后我们通过fidder 发起请求 结果: 通过我们反复测试 发现这个params的参数是每次请求中都会变化的 断点查找 我们通过 这个t参数 ...
随机推荐
- Spring Boot中如何优雅地实现异步调用?
前言 SpringBoot想必大家都用过,但是大家平时使用发布的接口大都是同步的,那么你知道如何优雅的实现异步呢? 这篇文章就是关于如何在Spring Boot中实现异步行为的.但首先,让我们看看同步 ...
- Python地理分析库whitebox在Anaconda中的配置
本文介绍在Anaconda环境下,安装Python中的一个高级地理空间数据分析库whitebox的方法. 首先,我们打开"Anaconda Prompt (Anaconda)&quo ...
- 【读书笔记】组合计数中的行列式方法 专题3 完美匹配: the Pfaffian method
目录 专题3-Perfect matchings: the Pfaffian method 一些定义 用2×1的砖密铺a×b的大矩形的方法数 专题3-Perfect matchings: the Pfa ...
- CSS必知必会
CSS概念 css的使用是让网页具有统一美观的页面,css层叠样式表,简称样式表,文件后缀名.css css的规则由两部分构成:选择器以及一条或者多条声明 选择器:通常是需要改变的HTML元素 声明: ...
- 机器学习基础02DAY
数据的特征预处理 单个特征 (1)归一化 归一化首先在特征(维度)非常多的时候,可以防止某一维或某几维对数据影响过大,也是为了把不同来源的数据统一到一个参考区间下,这样比较起来才有意义,其次可以程序可 ...
- HashMap和ConcurrentHashMap扩容过程
HashMap 存储结构 HashMap是数组+链表+红黑树(1.8)实现的. (1)Node[] table,即哈希桶数组.Node是内部类,实现了Map.Entry接口,本质是键值对. 下图链表中 ...
- Schillace 定律 背后的 Sam Schillace
微软semantic-kernel(SK)团队发布了一篇博客文章:Early Lessons From GPT-4: The Schillace Laws[1] ,微软的CVP , Deputy CT ...
- Rainbond的 Gateway API 插件制作实践
Gateway API 作为新一代的流量管理标准,对原有 Ingress 的扩展不规范.移植性差等问题做出了改进.从兼容K8s生态和优化网关体验出发,Rainbond 支持以插件的形式扩展平台网关能力 ...
- elk7.15.1安装部署搭建
ELK简介 ELK是Elasticsearch.Logstash.Kibana三大开源框架首字母大写简称(但是后期出现的Filebeat(beats中的一种)可以用来替代Logstash的数据收集功能 ...
- Django基于一对多的正向查询和反向查询
1.正向查询 obj = models.User.objects.get(name='longge') name = obj.group.name print(name) # 肖邦组 2.反向查询 & ...