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

【js逆向_AES】全国二手房指数数据爬取

目标:请求参数signcode,请求结果data。

网址:aHR0cDovL3d3dy5jY2hpbmRleC5jb20vSG9tZS9pbmRleA== 

查看载荷

查看响应数据

点击xhr,发现所有请求参数都是一个signCode,还是加密后的结果,对应结果中数据data也是一样,不同的数据加密后的字符串长度不同。(可以大胆的猜测一下对称加密,常见的对称加密aes,des等,sm4也是一个对称加密算法,说不定就是其中一个呢)

断点调试

要先过下面这个

 

编写js函数

 控制台输出:

数据对应一致 

 解密响应数据的函数

主函数关键代码:

运行结果:

补充:

hook XMLHttpRequest,(function hookXMLHttpRequest() {// 备份一下原始open和send方法const realOpen = XMLHttpRequest.prototype.open;const realSend = XMLHttpRequest.prototype.send;// 重写open方法XMLHttpRequest.prototype.open = function (method, url) {console.log('请求地址是:', url);console.log('请求方法类型:', method);// 检查 URL 中是否包含 keyif (url.includes('radio.key')) {// debugger; // 触发断点console.log('URL 包含 key,断点触发');}// 调用原始的open方法realOpen.apply(this, arguments);};// 重写send方法XMLHttpRequest.prototype.send = function (data) {// 发送请求体参数console.log('请求体:', data);// 调用原始的send方法,并传入所有参数realSend.apply(this, arguments);// 监听请求状态变化this.addEventListener('readystatechange', () => {if (this.readyState === 4) {// 请求完成后执行的代码console.log('获取返回的全部数据:', this.responseText);}});};
})();

 python版

import requests
import json
import time
from Crypto.Cipher import AES
from Crypto.Util.Padding import pad, unpad
import binascii# 加密函数
def g(e):e = str(e)key = b'comkmv7wfcbu1kjk'cipher = AES.new(key, AES.MODE_ECB)ciphertext = cipher.encrypt(pad(e.encode('utf-8'), AES.block_size))return binascii.hexlify(ciphertext).decode('utf-8')# 解密函数
def y(e):key = b'comkmv7wfcbu1kjk'ciphertext = binascii.unhexlify(e)cipher = AES.new(key, AES.MODE_ECB)decrypted = unpad(cipher.decrypt(ciphertext), AES.block_size)return decrypted.decode('utf-8')

http://www.xdnf.cn/news/10509.html

相关文章:

  • 《关于有序推动绿电直连发展有关事项的通知》核心内容
  • Flannel MAC地址冲突导致Pod 跨节点通信异常
  • 6.运算放大器—增益带宽积(六)
  • __STDC_VERSION__
  • 路由策略与路由控制
  • Linux系统配置网络优先级
  • Wavelib 库的核心属性、方法
  • Sa-Token 同端登录冲突检测实战
  • 箱式不确定集
  • Baklib加速企业AI数据治理实践
  • AtCoder Beginner Contest 399题目翻译
  • 前端面经 响应式布局
  • 2023ICPC杭州题解
  • 文档核心结构优化(程序C++...)
  • TensorFlow深度学习实战(19)——受限玻尔兹曼机
  • seq2seq 视频截图
  • 深度学习篇---人脸识别中的face-recognition库和深度学习
  • 【Canvas与色彩】八彩大风车
  • springboot-响应接收与ioc容器控制反转、Di依赖注入
  • nt!MiDispatchFault函数里面的nt!IoPageRead函数分析和nt!MiWaitForInPageComplete函数分析
  • URLDNS利用链剖析
  • latex figure Missing number, treated as zero. <to be read again>
  • mybatis01
  • 3、禁止树莓派屏幕休眠,设置树莓派屏幕常亮
  • VisionPro —— 不规则胶路检测
  • Codeforces Round 1028 (Div. 2) C. Gellyfish and Flaming Peony
  • java synchronized关键字用法
  • STM32Cubemx-H7-17-麦克纳姆轮驱动
  • 关于神经网络中的梯度和神经网络的反向传播以及梯度与损失的关系
  • 用Python打开不同联类型的文件