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

爬虫逆向实战(34)-某视综数据(MD5、AES)

一、数据接口分析

主页地址:某视综

1、抓包

通过抓包可以发现数据接口是/rank/waiting/fans
在这里插入图片描述

2、判断是否有加密参数

  1. 请求参数是否加密?
    通过查看“载荷”模块可以发现有一个sign参数
    在这里插入图片描述
  2. 请求头是否加密?
  3. 响应是否加密?
    通过查看“响应”模块可以发现数据是加密的
    在这里插入图片描述
  4. cookie是否加密?

二、加密位置定位

1、sign

(1)看启动器

查看启动器发现里面包含异步,所以无法正确找到加密位置
在这里插入图片描述

(2)搜索关键字

通过搜索关键字sign=,可以发现有一处sign的生成位置
在这里插入图片描述
在此处打上断点,再次获取数据,发现可以断住,并且sign的密文就是在此处生成的
在这里插入图片描述

2、响应

因为响应加密数据一般都是json数据,所以解密后会使用JSON.parse进行解密,所以我们可以对JSON.parse进行hook
hook代码:

var my_parse = JSON.parse;
JSON.parse = function (params) {debuggerconsole.log("json_parse params:",params);return my_parse(params);
};

运行hook代码,再次获取数据,发现可以断住明文数据
在这里插入图片描述
通过跟栈就可以找到解密位置
在这里插入图片描述

三、扣js代码

扣js代码时,可以发现sign在加密时,使用的加密方法是标准的MD5,所以我们可以使用标准模块进行加密,不扣js代码
在这里插入图片描述
同时,网站解密时使用的是标准的AES算法,所以我们可以使用标准的模块进行解密,不扣js
JavaScript源码:

const CryptoJS = require('crypto-js')function getSign(e) {delete e.sign;for (var t = [], n = Object.keys(e).sort(), r = 0; r < n.length; r++) {var i = n[r], a = e[i];t.push(i),t.push(a)}t.push("iIndex");var s = t.join("_"), c = CryptoJS.MD5(s).toString();return c
}function get_data(lastFetchTime, r) {var i = CryptoJS.enc.Utf8.parse(lastFetchTime + "000"), a = CryptoJS.enc.Utf8.parse(lastFetchTime + "000"), s = CryptoJS.AES.decrypt(r.toString(), i, {iv: a})return s.toString(CryptoJS.enc.Utf8);
}
http://www.lryc.cn/news/166163.html

相关文章:

  • 数据分析三剑客之Matplotlib
  • Python Opencv实践 - LBP特征提取
  • Docker 搭建Redis Cluster 集群
  • 解决谷歌浏览器会http网站自动变成https的问题
  • go小知识2
  • zabbix监控H3C设备
  • 国产化改造之Mysql迁移方案:Mysql Galera Cluster
  • bootstrap表单类型
  • 第一章 SQL Server 数据库部署
  • 赛事个人团体报名分组成绩查询证书h5小程序开源版开发
  • 【大数据环境配置】01-安装VMware虚拟机
  • 什么是C语言中的命名空间?
  • Java语言特点 8种基本数据类型 标识符等练习题 插入/希尔/选择/堆/冒泡/快速/归并/计数排序
  • 建站系列(七)--- 常用前后端框架
  • Jmx协议远程连接java服务器
  • consul 概念 键值对操作命令
  • R拒绝访问的解决方案
  • SeaArt.ai: 海艺AI绘画艺术图片模型创作平台
  • 服务器数据恢复-Xen server虚拟机数据恢复案例
  • 电工-PN结的工作原理
  • C#教学辅助系统网站as.net+sqlserver
  • Selenium - Tracy 小笔记2
  • SVN 和 GIT 命令对比
  • LeetCode 之 移除元素
  • Leecode1160: 拼写单词
  • 电脑死机的时候,CPU到底在做什么?
  • jdk 中的 keytool 的使用,以及提取 jks 文件中的公钥和私钥
  • Mysql--技术文档--B+树-数据结构的认知
  • cms之wordpress主题安装
  • 【Python程序设计】Python 中的环境变量【05/8】