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

JS逆向入门案例4——某数据服务平台数据爬取

JS逆向入门案例4——某数据服务平台数据爬取

  • 前言
  • 声明
  • 网站
  • 流程分析
  • 总结

前言

由于这段时间本职工作比较繁忙,没有很多空余的时间去研究各大厂的加密风控了,想起来自己刚接触js逆向走过坎坷,所以决定出一期js入门案例分析,为刚接触js逆向的小伙伴提供一点思路,各位小伙伴有想要分析的网站也可以私信我,谢谢大家。

声明

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

网站

aHR0cDovL3dlYmFwaS5jbmluZm8uY29tLmNuLyMvbWFya2V0RGF0YURhdGU=

流程分析

老样子,打开F12进行抓包,查看了请求头和载荷,发现只有accept-enckey一个加密值,那接下来就找accept-enckey是如何加密的吧。

在这里插入图片描述

直接搜索发现结果太多了,直接堆栈寻找加密的地方。首先先从第一个堆栈打下断点。

在这里插入图片描述

重新点击搜索成功让断点断住,此时发现accept-enckey已经生成,并且往上翻可以看到加密值是随着e传进来的,那我们就看上一个栈

在这里插入图片描述
在这里插入图片描述

跟上一栈发现加密值还是随参数进来的,那就再跟上一个栈。

在这里插入图片描述

跟到这个栈已经可以看到加密参数的赋值了,直接打下断点,然后放开之前的断点,重新点击搜索,让断点断在这,控制台打印出结果正是加密结果,接下来就跟进这个函数,看看里面做了什么事。

在这里插入图片描述
在这里插入图片描述

跟进去后发现是一大段混淆代码,但是_0x1cee98这个大对象下面包含了各种各样的算法,应该是调用了加密的算法库,那我们现在只需要手动给它解这部分混淆就可以调用标准库完成这个加密了。学过ast的可以将全部混淆都解了,这样会更加清晰,我没学过,所以选择硬刚。

在这里插入图片描述

通过这样逐个打印替换,最终把这部分混淆解完就已经很清晰了,是一个CBC模式的AES加密算法,其中Math[‘floor’](_0x28b1b3[‘FarLR’](new Date()‘getTime’, 1000))就是取了时间戳再除1000,了解加密流程,接下来只需要调用标准库进行加密即可。

在这里插入图片描述
在这里插入图片描述

下面附上js版本的加密算法代码

const CryptoJS = require('crypto-js');function encrypt() {// 获取当前时间戳(秒)const currentTime = Math.round(new Date().getTime() / 1000).toString();// 从localStorage获取密钥,如果不存在则使用默认值const key = '1234567887654321';const encryptedData = CryptoJS.AES.encrypt(CryptoJS.enc.Utf8.parse(currentTime),CryptoJS.enc.Utf8.parse(key),{iv: CryptoJS.enc.Utf8.parse('1234567887654321'),mode: CryptoJS.mode.CBC,padding: CryptoJS.pad.Pkcs7});return encryptedData.toString();
}

总结

最后也是可以获取数据,过程中遇到问题的可以私信博主,人数多的话后面会考虑创建一个讨论群,但是仅限于入门的小伙伴,大佬们都来指点指点我!!!
base64解码(TEgtNTk3MQ==) ==》 添加博主

在这里插入图片描述

相关文章:

  • Unity-Shader详解-其五
  • Coco AI 开源应用程序 - 搜索、连接、协作、您的个人 AI 搜索和助手,都在一个空间中。
  • sherpa-ncnn:Endpointing(断句规则)
  • 【最新版】likeshop连锁点餐系统-PHP版+uniapp前端全开源
  • 计数排序-详解
  • 机器学习第一讲:机器学习本质:让机器通过数据自动寻找规律
  • jquery+ajax+SpringBoot实现前后端分离技术
  • Java游戏服务器开发流水账(2)开发中Maven的管理
  • React 实现 JWT 登录验证的最小可运行示例
  • Oracle EBS FORM快捷键与触发器的关系与使用
  • 永久免费的小工具,内嵌微软接口
  • 二叉搜索树的插入操作(递归遍历)
  • C语言 指针(9)
  • 动态SQL与静态SQL
  • 10.王道_HTTP
  • 【AI论文】FlexiAct:在异构场景中实现灵活的动作控制
  • Spring Boot 实现验证码生成与校验:从零开始构建安全登录系统
  • 并发与并行的关系
  • 如何防止域名DNS被劫持?
  • 【Go】优化文件下载处理:从多级复制到零拷贝流式处理
  • 深圳网站建设制作设计/google play服务
  • 程序员找工作网站/深圳产品网络推广
  • 建设部网站业绩补录/优化分析
  • 市场策划/seo整站排名
  • 在印度做视频网站/今日头条网页版入口
  • 网站备案 论坛/网络运营师