JS逆向 - 瑞数4代cookie补环境调试

文章旨在学习和记录,若有侵权,请联系删除


前言

目标网址:aHR0cHMlM0EvL3dlbnNodS5jb3VydC5nb3YuY24v
目标参数:cookie中的 FSSBBIl1UgzbN7N80T
目标特点:js混淆、大数组、环境检测、控制流平坦化


一、202页面分析

瑞数4代主要有两层js

  1. 第一层是202页面返回的js

  2. 第二层是第一层js中用eval执行的虚拟机里面的代码
    (可全局搜索.call定位到eval处)

根据上篇文章《JS逆向 - 某数4代特征》可知,第一次响应返回的页面有三个重点。

我们先打上script断点,然后请求网网址,断住。

在这里插入图片描述
格式化后,

第一处meta标签
这里面的内容将会在第二层的js里面用到,主要是用于加密,js取出时也起到检测环境的作用,需要正则匹配出拿进第二层里面。

第二处导入了一个js文件
这个js文件主要用于生成第二层混淆的js代码。

第三处自执行函数
主要有三方面作用,第一是生成了大对象window.$_ts(在第二层js中会频繁用到);第二是定义了一些值,这些值的变量名会变,不要记变量,可以正则匹配这些值的位置(在第二层js中用于关键流程);第三是声明了一些函数,第二层js中也会回来调用。(如果使用补环境方式,第一层的js都可以不用扣,下面会介绍如何补环境来过某数)

二、本地调试

1.扣代码

由于页面直接给出的就是一个自执行函数,我们直接扣下来,别忘了将meta和js文件里的内容也拿出来。
在这里插入图片描述
补上window后我们就可以进行调试了。

使用pycharm不方便调试js,容易卡死,下面我们使用vscode。
在这里插入图片描述

全局搜索 .call 并打上断点,debugger,然后点单步追进去。
在这里插入图片描述
我们这就成功的进入了第二层js里面。

2.补环境

我们将文章《Proxy代理函数在JS逆向补环境中的妙用》中介绍的 proxy 代码拿过来用。
在这里插入图片描述
将 proxy 代码放到抠出来的js头部,运行,会发现输出了很多环境,根据undefined的值来补。

补完第一层,单步进入eval.call里面补第二层。

主要检测的环境有: window、document、navigator、location、localStorage等等。

注意要把 setTimeout、setInterval 置空,将浏览器断住的代码拿到本地中进行联调,如果遇到有些加密流程使用到了随机数,可以将hook随机数返回固定值,然后慢慢调试,保持生成的cookie和浏览器的一致就成功了。

最后,让我们来进行愉快的补环境调试吧。

  • 2
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

追风暴的人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值