爬虫逆向非对称加密和对称加密案例
注意!!!!某XX网站逆向实例仅作为学习案例,禁止其他个人以及团体做谋利用途!!!
案例--aHR0cHM6Ly9jcmVkaXQuaGxqLmdvdi5jbi94eWdzL3l6d2ZzeHF5bWQv
第一步:分析页面、请求方式和响应内容
可以看出,请求参数和响应内容均为密文,且不能直观看出是哪一种加密方式。那么我们进行逆向解析,打断点进行分析。


第二步:请求页面,并分析请求,进行逆向解析操作
在XHR/fetch Breakpoint 进行 新增 当前请求网址,这样重新请求时,即可直接停止,方便进行分析。同时我们可以看到 call stack 中显示请求顺序。我们可以往回找一找。在 【search】 中可以看出。定义了 变量 data 且赋予 空对象,但是,经过请求data 中已经有了数据,其中有两个值,密文 salt 和sign 并且 salt 和请求参数、响应的密文很像可以暂定是相同加密方式。那就先解决 salt 和 sign 的加密


第三步:逆向解析找到 data ,salt,sign
逆向解析时可以看到 含有数据的data 被当做参数传入方法里。其中_0x493352 是data ,并且该方法中很多地方都用到了data。



那我们可以先找一下 salt 和sign。再找一下data用在方法中的位置

第四步: 分析sign
通过分析可以知道 sign使用 sha256加密。



第五步: 分析salt
通过分析可以知道 salt使用非对称加密方法。





第五步: 分析data
通过分析可以知道 data使用 DES3对称和hex_md5加密。








第六步:代码块分享
# -*- coding:utf-8 -*-
# @Time : 2024/3/1 15:05
# @Author: 水兵没月
# @File : XXXXX.py
# @Software: PyCharmimport timeimport execjs
import requestsfor p in range(1, 2):t = int(time.time()*1000)sgin_parse = "pageSize=10&pageStart={}&q=&tyshxydm=&key={}".format(p,t)salt_parse = twith open('./XXXXX.js', 'r', encoding='utf-8')as f:html = ''.join(f.readlines())f.close()ctx = execjs.compile(html)sgin_js = ctx.call('SHA256', sgin_parse)salt_js = ctx.call('salt_encrypt_node', salt_parse)parse = {"q":"","tyshxydm":"","pageStart":p,"pageSize":10,"sign":sgin_js,"salt":salt_js}parse_js = ctx.call('jiemi_encrypt', parse)s = requests.session()url = "https://XXXX.XXXX.XXX.XX/ospapi/cedit/yzwfcxczysmdxx"headers = {"Content-Type":"application/json","User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",}res = s.post(url=url, data=parse_js, headers=headers, verify=False, proxies=eval(str(get_proxy(4)).replace('https', 'HTTPS').replace('http', 'HTTP'))) # impersonate="chrome101",res.encoding='utf-8'text = res.textres_js = ctx.call('jiemi_decrypt', text.strip('"'))print(res_js)print('----------------')
/* =====================
#@Time : 2024/3/1 17:09
#@Author: 水兵没月
#@File : XXXXX.js
#@Software: PyCharm
=======================*/const des3iv='12345678';
const CryptoJS = require('crypto-js')
// const JSEncrypt = require('jsencrypt')
const NodeRSA = require('node-rsa')/*
注意!!!!!!!!还有部分代码,可以直接扣代码即可。很简单很简单,需要耐心。
*/
function jiemi_encrypt (message) {var keyHex = CryptoJS.enc.Utf8.parse(getkey());var encrypted = CryptoJS.TripleDES.encrypt(JSON.stringify(message), keyHex, {iv: CryptoJS.enc.Utf8.parse(des3iv),mode: CryptoJS.mode.CBC,padding: CryptoJS.pad.Pkcs7});return encrypted.toString();}function jiemi_decrypt(message) {var keyHex = CryptoJS.enc.Utf8.parse(getkey());var decryptData = CryptoJS.TripleDES.decrypt(message, keyHex, {iv: CryptoJS.enc.Utf8.parse(des3iv),mode: CryptoJS.mode.CBC,padding: CryptoJS.pad.Pkcs7});var tempStr = decryptData.toString();return decryptData.toString(CryptoJS.enc.Utf8);}function salt_encrypt_node(_0x249e42) {var _0x70805e = "-----BEGIN PUBLIC KEY-----"+ "MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAMdek/OvlEBhsSfIoDEbnwUPEwn3WbI+WY4O/0nrDnL8DHkNdeZytcfhjX4nV713FYKe7EeEDQVmRlU2e//h/eECAwEAAQ=="+ "-----END PUBLIC KEY-----";var nodersa = new NodeRSA(_0x70805e);nodersa.setOptions({encryptionScheme: 'pkcs1'})return nodersa.encrypt(_0x249e42, 'base64');
}
仅作为笔记记录,如有问题请各位大佬来指导
相关文章:
爬虫逆向非对称加密和对称加密案例
注意!!!!某XX网站逆向实例仅作为学习案例,禁止其他个人以及团体做谋利用途!!! 案例--aHR0cHM6Ly9jcmVkaXQuaGxqLmdvdi5jbi94eWdzL3l6d2ZzeHF5bWQv 第一步:分析页面、请求…...
大数据基础设施搭建 - Spark
文章目录 一、解压压缩包二、修改配置文件conf/spark-env.sh三、测试提交Spark任务四、Spark on Hive配置4.1 创建hive-site.xml(spark/conf目录)4.2 查看hive的hive-site.xml配置与3.1配置的是否一致4.3 测试SparkSQL4.3.1 启动SparkSQL客户端ÿ…...
轻松上手Jackjson(珍藏版)
写在前面 虽然现在市面上有很多优秀的json解析库,但 Spring默认采用Jackson解析Json。 本文将通过一系列通俗易懂的代码示例,带你逐步掌握 Jackson 的基础用法、进阶技巧以及在实际项目中的应用场景。 一、Jackjson简介 Jackson 是当前用的比较广泛的&a…...
Pytorch数据结构:Tensor(张量)及其维度和数据类型
文章目录 Tensor基础1.1、Tensor的维度(Dimensions)1.1.1、举例说明1.1.2、高维Tensor 1.2、.dim()和.size()方法1.2.1、.dim()方法1.2.2、.size()方法1.2.3、.shape属性1.2.3、示例代码1.2.3.1、一维Tensor1.2.3.2、二维Tensor1.2.3.3、三维Tensor 1.3、…...
【THM】Protocols and Servers 2(协议和服务器 2
介绍 协议和服务器房间涵盖了许多协议: 远程登录HTTP协议文件传输协议邮件传输协议POP3IMAP实现这些协议的服务器会受到不同类型的攻击。仅举几例,请考虑: 嗅探攻击(网络数据包捕获)中间人 ( MITM ) 攻击密码攻击(身份验证攻击)漏洞从安全的角度来看,我们始终需要思考…...
阿里云服务器可以干什么?阿里云服务器主要用途是干嘛的?
阿里云服务器可以干嘛?能干啥你还不知道么!简单来讲可用来搭建网站、个人博客、企业官网、论坛、电子商务、AI、LLM大语言模型、测试环境等,阿里云百科aliyunbaike.com整理阿里云服务器的用途: 阿里云服务器活动 aliyunbaike.com…...
LeetCode hoot100-22
160. 相交链表给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null 。这道题几分钟就写出来了。应该是几年前做过,这种思想还能一直记得。所以算法题是不会白做的。 我的…...
蓝桥杯 经验技巧篇
1. 注意事项 👨🏫 官方通知 👨🏫 资料文档 时间:4月13日 9:00~13:00 (时长 4小时)物品 准考证(赛前一周开放下载,自行打印)学生证身份证笔、水、外套&a…...
QMC5883芯片I2C驱动开发指南
这个芯片纯国产挺好用的,电路很好设计,我这垃圾焊功,纯手焊,,居然能用。 第一部分 硬件连接 画的很简陋,看看就可以了。 第二部分 软件驱动 I2C的具体时序实现需要自己搞定!! 2…...
缓存击穿以及解决方案
1.定义 缓存击穿问题也叫热点Key问题,就是一个被高并发访问并且缓存重建业务较复杂的key突然失效了,无数的请求访问会在瞬间给数据库带来巨大的冲击。 问题描述:假设线程1在查询缓存之后,本来应该去查询数据库,然后把…...
【电路笔记】-逻辑非门
逻辑非门 文章目录 逻辑非门1、概述2、晶体管逻辑非门3、六角施密特反相器逻辑非门是所有逻辑门中最基本的,通常称为反相缓冲器或简称为反相器。 1、概述 反相非门是单输入器件,其输出电平通常为逻辑电平“1”,当其单个输入为逻辑电平“1”时,输出电平变为“低”至逻辑电平…...
vue-element-admin vue3版本搭建
要搭建一个基于Vue 3版本的vue-element-admin项目,你可以按照以下步骤进行: 首先,确保你的开发环境已经安装了Node.js和npm。Node.js是一个JavaScript运行环境,而npm则是Node.js的包管理器,它们将帮助你安装和管理Vue…...
大话设计模式——11.桥接模式(Bridge Pattern)
简介 将抽象部分与它的实现部分分离,使它们可以独立变化。 UML图: 应用场景: 系统需要在构建的抽象化角色和具体化角色之间增加更多的灵活性不想使用继承导致系统类的个数急剧增加某个类存在多个变化维度使用继承方式容易出现类的膨胀 示例…...
新概念英语1:Lesson 25学习笔记
新概念英语1:Lesson 25学习笔记 There is a refrigerator in the kitchen There be句型是英语中一个常用的表达方法,它表示某个地方或某个情况存在某种事物或人。 there是引导词,本身无意义 句型基本上就是Therebe动词主语地点/时间 be动…...
Java 8 内存管理原理解析及内存故障排查实践
介绍Java8虚拟机的内存区域划分、内存垃圾回收工作原理解析、虚拟机内存分配配置,介绍各垃圾收集器优缺点及场景应用、实践内存故障场景排查诊断,方便读者面临内存故障时有一个明确的思路和方向。 一、背景 Java是一种流行的编程语言,可以在不…...
RH850从0搭建Autosar开发环境【3X】- Davinci Configurator之RTE模块配置详解(上)
RTE模块配置详解 - 上 一、RTE模块配置实操1.1 打开RTE模块1.2 RTE模块错误消除在这里插入图片描述 这里我们利用工具的自动处理功能。二、Configurator工具Validation总结本节我们就手把手详解RTE配置实现,其实也没有什么过多的操作。。。这个模块更多是工具自动处理的。 一、…...
小米汽车su7全色系展示源码
源码简介 小米汽车全色系展示源码,小米汽车su7全色系展示源码 安装教程 纯HTML,直接将压缩包上传网站目录解压即可 首页截图 源码下载 小米汽车su7全色系展示源码-小8源码屋源码简介 小米汽车全色系展示源码,小米汽车su7全色系展示源码 …...
钉钉事件订阅前缀树算法gin框架解析
当钉钉监测到发生一些事件,如下图 此处举例三个事件user_add_org、user_change_org、user_leave_org,传统的做法是,我们写三个if条件,类似下图 这样字符串匹配效率比较低,于是联想到gin框架中的路由匹配算法࿰…...
React18从入门到实战
文章目录 一、React环境的搭建二、项目文件的介绍(1)package.json,他是项目存放依赖包的地方,里面包括了一些项目核心包及下载的其他插件包(2)src文件夹是项目源码目录,平时开发页面就在其中&am…...
【漏洞复现】某科技X2Modbus网关多个漏洞
漏洞描述 最近某科技X2Modbus网关出了一个GetUser的信息泄露的漏洞,但是经过审计发现该系统80%以上的接口均是未授权的,没有添加相应的鉴权机制,以下列举多个未授权接口以及获取相关敏感信息的接口。 免责声明 技术文章仅供参考,任何个人和组织使用网络应当遵守宪法法律…...
别再只会用DC-DC了!手把手教你用电荷泵搞定液晶屏的VGH和VGL电压
电荷泵实战:低成本实现LCD屏VGH/VGL电压的工程方案 在TFT-LCD驱动电路设计中,VGH(栅极开启电压)和VGL(栅极关闭电压)的生成一直是硬件工程师面临的挑战。传统方案多依赖DC-DC转换器,但面对16.4V…...
别再死磕PSO了!用Python手把手教你实现GWO灰狼优化算法(附完整代码)
用Python实战GWO灰狼优化算法:告别传统优化方法的局限 在工程优化和机器学习领域,算法选择往往决定了问题求解的效率和质量。传统粒子群优化(PSO)算法虽然广为人知,但其参数调节复杂、易陷入局部最优的缺点也日益明显。灰狼优化算法(Grey Wol…...
思源宋体TTF完全指南:7种字重免费使用,打造专业中文排版
思源宋体TTF完全指南:7种字重免费使用,打造专业中文排版 【免费下载链接】source-han-serif-ttf Source Han Serif TTF 项目地址: https://gitcode.com/gh_mirrors/so/source-han-serif-ttf 还在为中文排版找不到合适的免费字体而烦恼吗ÿ…...
基于SpringBoot的共享汽车管理系统毕设源码
博主介绍:✌ 专注于Java,python,✌关注✌私信我✌具体的问题,我会尽力帮助你。一、研究目的本研究旨在构建一个基于Spring Boot与Vue框架的共享汽车管理系统以解决当前共享汽车行业在资源调度效率、用户服务体验以及数据安全等方面存在的核心问题。随着城…...
listmonk数据库查询缓存键命名规范:一致性与可读性
listmonk数据库查询缓存键命名规范:一致性与可读性 在高性能自托管邮件列表管理器listmonk中,数据库查询缓存是提升系统响应速度的关键组件。本文将深入解析listmonk项目中数据库查询缓存键的命名规范,探讨如何通过一致性的命名规则和良好的…...
TCA白皮书解读:腾讯内部CodeDog系统的演进历程
TCA白皮书解读:腾讯内部CodeDog系统的演进历程 【免费下载链接】CodeAnalysis Static Code Analysis - 静态代码分析 项目地址: https://gitcode.com/gh_mirrors/co/CodeAnalysis 腾讯云代码分析(TCA)作为一款强大的静态代码分析工具&…...
【亲测有效】DeepSeek极简入门与应用_156.[第6章 高级应用技巧] 场景描述型框架:用情境设定让AI进入最佳状态
别再让AI"猜谜"了!一个场景设定,让DeepSeek从"人工智障"秒变"懂王"——这可能是你用过最被低估的Prompt技巧 #mermaid-svg-7MQcGN4wm4OXCgus{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:1…...
ROS新手也能玩转AUBO i5:用MoveIt和Rviz在Ubuntu 20.04上实现机械臂可视化仿真与控制
ROS新手也能玩转AUBO i5:用MoveIt和Rviz在Ubuntu 20.04上实现机械臂可视化仿真与控制 机械臂控制一直是机器人开发中的核心课题,而ROS(Robot Operating System)为这一领域提供了强大的工具链。本文将带你从零开始,在Ub…...
循迹小车传感器布局与状态机编程避坑指南:从5路红外到精准过直角弯
循迹小车传感器布局与状态机编程避坑指南:从5路红外到精准过直角弯 在智能小车开发领域,循迹功能是最基础也最具挑战性的环节之一。许多创客和学生在完成硬件搭建后,往往会陷入软件调试的泥潭——小车要么频繁偏离轨道,要么在直角…...
对比直接使用原生 API 与通过 Taotoken 调用在账单清晰度上的差异
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 对比直接使用原生 API 与通过 Taotoken 调用在账单清晰度上的差异 对于需要频繁调用多个大语言模型的团队或个人开发者而言&#x…...
