首页 > 其他分享 >JS逆向实战14——猿人学第二题动态cookie

JS逆向实战14——猿人学第二题动态cookie

时间:2023-05-26 11:37:20浏览次数:56  
标签:console 14 0x1451c6 JS cookie 0x4b00b1 浏览器 log

声明

本文章中所有内容仅供学习交流,抓包内容、敏感网址、数据接口均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请联系我立即删除!

目标网站

https://match.yuanrenxue.cn/match/2

网站分析

首先已经告诉了我们这个网站是动态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;
    }
    ;

后面就是逐步扣代码
注意

  1. 扣的时候一定要有耐心
  2. 注意有坑,正则校验 直接搜索 new Regex


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



    可见这个是浏览器指纹
    有两种解决方案

    1. 直接把这个地方替换成 ''

      因为浏览器执行出来的也是空
    2. 重新伪装navigator 补环境
  2. history 未被定义 console.log 被重写
    等到最后打印的收会报错

    这里也有两种解决方案

  3. 在最开始的时候定义console.log 把console.log 赋值给另一个值

result = console.log;
  1. 用console.warn,console.debug (总有一个没被改写)

完成

后面就是缺啥补啥 其实非常麻烦。
然后补完之后运行我们的代码

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

可以成功运行

标签:console,14,0x1451c6,JS,cookie,0x4b00b1,浏览器,log
From: https://www.cnblogs.com/zichliang/p/17433941.html

相关文章

  • js获取抖音视频信息配合服务器自动下载
    引入axios方便发送请求解析当前页面获取视频信息把数据发送到服务器注意端口号,1024以上浏览器可能会拦截,认为不安全重复发送,防止连续重复发送,手动清除定时器点击查看代码//导入axios.posletscript=document.createElement('script');script.src="https://unpkg.......
  • js对象遍历和拷贝
    letobj={name:'user1',age:12,gender:'man'}for(letattrinobj){console.log(attr,obj[attr])}constkeys=Object.keys(obj)constvalues=Object.values(obj)console.log(Object.keys(obj))console.log(Object.values(obj))   letobj......
  • 解决npm npm does not support Node.js
    原因:node.js和npm版本不对应参考官网版本对应(https://nodejs.org/zh-cn/download/releases/),下载对应的node.js版本和更新npm版本npmupdate常用命令使用 npm-check检查更新npminstall-gnpm-checknpm-check2.npm-upgrade更新......
  • js数据解构
    1、变量比值多可以设置变量默认值 解构let[a,b,c,d='aaa']=[12,34,24]2、变量比值少可以用剩余参数解构let[a,...b]=[11,22,44,55]//a11b[22,44,55]3、按需赋值let[a,,b]=[5,6,9]4、数组嵌套解构let[a,b,arr]=[1,2,[5,8,9]]let[a,b,[c,d,e]]=[1,2,[5,8,9]]5、......
  • Nodejs 应用编译构建提速建议
    编译构建的整体过程拉取编译镜像拉取缓存镜像拉取项目源码挂载缓存目录执行编译命令(用户自定义)持久化缓存上传编译镜像为什么在本地构建就快,但编译机上很慢在编辑机上每次的构建环境都是全新的,完成一次构建比本地需要多一些步骤:现成的全局包缓......
  • js防抖和节流
    1.什么是节流(throttle)和防抖(debounce)概念节流(throttle):是函数在一定时间内,不管调用了多少次,实际只会在最后的时候执行一次防抖(debounce):是函数在一定时间内,每次调用,都会重置倒计时,直到规定时间内没有再次调用,才会执行区别这里以关门当作函数执行前等待时间时的操作;以发车......
  • Fastjson 很快,但不适合我....
    作者:nyingping来源:juejin.cn/post/7215886869199863869记者:大爷您有什么特长呀?FastJson:我很快。记者:23423乘以4534等于多少?FastJson:等于2343.记者:??FastJson:你就说快不快吧!这个略显马丽苏的标题,各位看官将就着看吧。主要是怕被喷。FastJson真的很好,我用不用我喜不......
  • Educational Codeforces Round 149 (Rated for Div. 2)
    EducationalCodeforcesRound149(RatedforDiv.2)A-GrasshopperonaLine思路:只有两种情况,x整除k时为x-1和1,否则为xvoidsolve(){intx,k;cin>>x>>k;if(x%k==0){cout<<"2\n"<<x-1<<&qu......
  • JS的异步化特征async await
    参考:https://segmentfault.com/a/1190000007535316https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promisehttps://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/awaithttps://developer.mozilla.org/zh-CN/......
  • Codeforces 1439E - Cheat and Win
    模拟赛放了道*3500,结果全场都切了,非常恐怖。首先考虑怎么样的树是合法的,打个表发现SG函数值为\(\sum_{d}2^d·(\text{深度为d的点个数}\bmod2)\),换句话说后手必胜当且仅当每种深度的点数都是偶数。于是实际上我们只用建出虚树之后树上差分一下求出每个点被覆盖的情况,进而......