爬虫逆向非对称加密和对称加密案例

注意!!!!某XX网站逆向实例仅作为学习案例,禁止其他个人以及团体做谋利用途!!!

案例--aHR0cHM6Ly9jcmVkaXQuaGxqLmdvdi5jbi94eWdzL3l6d2ZzeHF5bWQv

第一步:分析页面、请求方式和响应内容

可以看出,请求参数和响应内容均为密文,且不能直观看出是哪一种加密方式。那么我们进行逆向解析,打断点进行分析。

第二步:请求页面,并分析请求,进行逆向解析操作

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

第三步:逆向解析找到 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');
}

 仅作为笔记记录,如有问题请各位大佬来指导

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/798583.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CTF 之Zhuanxv

拿到题目进行目录遍历发现有一个/list文件 打开/list文件,发现是一个登录界面 尝试过爆破,毫无疑问不可能成功。 刷新页面,抓包,然后放一个包,发现又发了一个请求。 GET /loadimage?fileNameweb_login_bg.jpg HTTP/…

1995-2021年各省分品种能源产量和消费量数据

1995-2021年各省分品种能源产量和消费量数据 1、时间:1995-2021年 2、来源:能源统计年鉴、各省年鉴 3、指标:能源消费总量、煤炭消费量、焦炭消费量、原油消费量、汽油消费量、煤油消费量、柴油消费量、燃料油消费量、天然气消费量、电力消…

不开玩笑,你应该像「搬砖」一样写代码!斯坦福大学研究如是说

由于程序员不可避免要进行很多重复性的工作,并且工作强度很高,导致有一种自嘲的说法出现:程序员们自称自己每天都在搬砖(实际上很多职场人都这么自嘲)。我相信当我们说工作像「搬砖」的时候,只是在表达一种…

非关系型数据库——三万字Redis数据库详解

目录 前言 一、Redis概述 1.主要特点 2.Redis优缺点 3.Redis为什么这么快 4.Redis那么快,为什么不用它做主数据库,只用它做缓存 5.线程模型 5.1单线程架构 5.2多线程IO处理(Redis 6及以上) 5.3线程模型的优化 6.作用 …

回归预测 | Matlab实现WOA-GPR鲸鱼算法优化高斯过程回归多变量回归预测

回归预测 | Matlab实现WOA-GPR鲸鱼算法优化高斯过程回归多变量回归预测 目录 回归预测 | Matlab实现WOA-GPR鲸鱼算法优化高斯过程回归多变量回归预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 Matlab实现WOA-GPR鲸鱼算法优化高斯过程回归多变量回归预测 1.Matlab实现…

吹爆!遥感高光谱分类(Python)

目录 一、数据集下载 二、安装包 三、数据处理 四、模型训练 五、模型推理 六、踩坑记录 一、数据集下载 Hyperspectral Remote Sensing Scenes - Grupo de Inteligencia Computacional (GIC) (ehu.eus) Installing SPy — Spectral Python 0.21 documentation 二、安装…

算法打卡day36|动态规划篇04| 01背包理论基础、416. 分割等和子集

目录 01背包理论基础 01背包问题描述 01背包解法 二维数组 一维数组 算法题 Leetcode 416. 分割等和子集 个人思路 解法 动态规划 01背包理论基础 不同的背包种类,虽然有那么多中南背包,但其中01背包和完全背包是重中之重; 01背包问…

Python + Appium 自动化操作微信入门看这一篇就够了

Appium 是一个开源的自动化测试工具,支持 Android、iOS 平台上的原生应用,支持 Java、Python、PHP 等多种语言。 Appium 封装了 Selenium,能够为用户提供所有常见的 JSON 格式的 Selenium 命令以及额外的移动设备相关的控制命令,…

LABVIEW--正弦+高斯噪声信号及滤波

前面板信号 后面板 LABVIEW源程序链接:https://pan.baidu.com/s/11B-75i4fHZwWQyjxn9yCyQ?pwd7tfj 提取码:7tfj

中文地址分词器源码阅读(jiedi)

文章目录 structure.p文件pd.read_excelenumerate思维导图核心源码讲解jiedi.pytrain.py 总结 structure 点击左边的Structure按钮就如Structure界面。从Structure我们可以看出当前代码文件中有多少个全局变量、函数、类以及类中有多少个成员变量和成员函数。 其中V图标表示全…

AI普及时代,【AI书童】助你提升自我竞争力

AI运营官招募令!!! 【AI书童】运营官 未来智慧人工智能 2024-03-26 12:00 浙江 微信公众号:未来智慧人工智能 助力个人和企业在人工智能时代持续成功 随着ChatGPT、GPT-4和Sora等创新技术的推出,人工智能在多模态领…

《梦幻西游》迎来史上最大翻车,老玩家们为何纷纷揭竿而起?

因一次调整,21岁的《梦幻西游》迎来了自己有史以来最大的一波节奏。 玩家在微博上炮轰官方,称:“游戏借着打击工作室牟利的称号,砍副本活动产出,然后自己口袋无限卖”,要求改善游戏现状。 从3月29日起&am…

小黑逆向爬虫探索与成长之路:小黑独立破解毛毛租数据加密与解密

前言 有道和招标网的加密入口定位在前面两期做了详细的介绍,本小结将通过简单的关键词搜索定位到加密与解密入口 数据接口寻找与请求 根据响应数据长度,确定数据接口,发现传入的参数需要加密,响应的结果需要解密,后…

nodejs应用程序不同部署环境下的差异配置方案

一、背景 nodejs应用程序,不同于java语言使用分布式配置,当部署于不同的环境里,因为环境的差异,配置项的值也不尽相同。 最常见的差异就是数据库的连接信息,而代码是一份,不能把生产环境的信息暴露在非生产…

html+css+js编程入门----使用TitanIDE制作可切换主题的简单网页

在学习编程的时候,最重要的就是直接动手尝试,从实际挑战中逐渐作出调整。这个网站制作教程将根据以下几个步骤,手把手带你制作一个简易的网站,让你了解 HTML、CSS 和 JS 之间的关系与基本操作: 当我们从建筑的角度来理…

Unity学习笔记 - 第一个Hello World都算不上的项目

一、Unity安装 这里不细说安装了,首先需要Visual Studio,然后要安装Unity Hub,Unity Hub就像一个管理平台,安装完它之后,可以在它的界面上选择安装各个版本的编辑器。 开始您的创意项目并下载 Unity Hub | Unity通过 …

lv17 CGI移植 5-1

简介 CGIC是一个支持CGI开发的开放源码的标准C库,可以免费使用,只需要在开发的站点和程序文档中有个公开声明即可,表明程序使用了CGIC库,用户也可以购买商业授权而无需公开声明。 CGIC能够提供以下功能: 分析数据&a…

【第十二篇】使用BurpSuite实现CSRF(实战案例)

CSRF存在前提:简单的身份验证只能保证请求是发自某个用户的浏览器,却不能保证请求本身是用户自愿发出的 业务场景:新增、删除、收藏、编辑、保存使用Burp发现CSRF漏洞的过程如下。 1、如图,存在修改邮箱的功能点如下: 2、修改邮箱的流量包,此时邮箱已被修改: 思路:是…

【leetcode】将x减到0的最小操作数/水果成篮/找到字符串中所有字母异位词{史上最容易懂的解析}

文章目录 1.将x减到0的最小操作数2.水果成篮3.找到字符串中所有字母异位词 1.将x减到0的最小操作数 分析题目 x不断地减去数组两端的值 看能否减到0;是不是就是在问:nums数组中存不存在【左端右端】组成的连续区间,区间上数的和为x 继续分析 …

【三十七】【算法分析与设计】STL 练习,凌波微步,栈和排序,吐泡泡,[HNOI2003]操作系统,优先队列自定义类型

凌波微步 链接:登录—专业IT笔试面试备考平台_牛客网 来源:牛客网 时间限制:C/C 1 秒,其他语言 2 秒 空间限制:C/C 32768K,其他语言 65536K 64bit IO Format: %lld 题目描述 小 Z 的体型实在是太胖了&…