爬虫逆向实战(二)--某某观察城市排行榜

一、数据接口分析

主页地址:某某观察

1、抓包

通过抓包可以发现数据接口是multi

2、判断是否有加密参数

  1. 请求参数是否加密?
  2. 请求头是否加密?
  3. cookie是否加密?
  4. 响应数据是否加密?
    通过查看"响应"板块可以发现响应数据是加密的

二、解密位置定位

1、看启动器

查看启动器发现里面包含异步,所以无法正确找到解密位置

2、hook

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

hook代码段:

javascript 复制代码
var my_parse = JSON.parse;
JSON.parse = function (params) {
    debugger
    console.log("json_parse params:",params);
    return my_parse(params);
};

运行hook代码,再次点击翻页,发现有明文参数传入

往下执行,可以发现是在响应拦截器中对数据进行的解密

三、扣js代码

在响应拦截器中可以发现,该网站解密是用的标准AES模块进行的解密

所以我们只需要跟代码找到密钥就可以使用标准AES模块进行解密了

源代码:

javascript 复制代码
var CryptoJS = require('crypto-js')

function tripleAesDecrypt(srcs) {
    var aesKey = 'QV1f3nHn2qm7i3xrj3Y9K9imDdGTjTu9'
    var key = CryptoJS.enc.Utf8.parse(aesKey),
        decrypted = CryptoJS.AES.decrypt(srcs, key, {
            mode: CryptoJS.mode.ECB,
            padding: CryptoJS.pad.Pkcs7
        });
    return decrypted.toString(CryptoJS.enc.Utf8);
}
相关推荐
John Song3 小时前
Python创建虚拟环境的方式对比与区别?
开发语言·python
geovindu3 小时前
python: Bridge Pattern
python·设计模式·桥接模式
搞程序的心海3 小时前
Python面试题(一):5个最常见的Python基础问题
开发语言·python
宝贝儿好6 小时前
【强化学习实战】第十一章:Gymnasium库的介绍和使用(1)、出租车游戏代码详解(Sarsa & Q learning)
人工智能·python·深度学习·算法·游戏·机器学习
程序媛一枚~9 小时前
✨✨✨使用Python,OpenCV及图片拼接生成❤️LOVE❤️字样图,每张小图加随机颜色边框,大图加随机大小随机颜色边框
图像处理·python·opencv·numpy·图像拼接
MediaTea9 小时前
Python:collections.Counter 常用函数及应用
开发语言·python
如若1239 小时前
flash-attn 安装失败?从报错到成功的完整排雷指南(CUDA 12.8 + PyTorch 2.7)
人工智能·pytorch·python
007张三丰9 小时前
知乎高赞回答爬虫:从零开始,建立你的专属知识库
爬虫·python·知识库·python爬虫·知乎·高赞回答
李昊哲小课9 小时前
Python json模块完整教程
开发语言·python·json
易醒是好梦9 小时前
Python flask demo
开发语言·python·flask