《Python爬虫逆向实战》加密方法远程调用(RPC)

加密方法远程调用采用了RPC (Remote Procedure Call)协议,即远程过程调用协议。我们让浏览器充当客户端,并通过WebSocket将加密参数值发送给服务端(用Python写一个),这样的话我们就不需要花费大量时间去逆向了。下面我们就通过一个微博登录示例来演示下RPC的用法。


了解登录加密参数

首先打开微博页面,点击右边的立即登录按钮后就会在新窗口中打开登录页面。
微博页面
登录页面

随便用什么账号密码登录下后,就可以抓到登录请求链接(验证码通过不在本文考虑范围内)。
登录请求链接

接着我们就可以看到加密参数了。
加密参数


定位加密参数生成位置

我们全局搜索下加密参数rsakv即可快速定位到加密参数生成位置。
全局搜索rsakv

添加断点后验证无误。而且现在我们可以知道变量b中就包含了所有加密参数的值。因此,我们将b的值通过RPC发送给服务端即可。
断点验证


编写客户端和服务端代码

将js文件覆盖重写,然后添加WebSocket客户端代码。
覆盖重写
添加客户端代码

代码目的很明确,就是连接到服务端,接收服务端传过来的账号密码并将加密后的值返回给服务端。

var ws = new WebSocket("ws://127.0.0.1:9999");
ws.open = function(e){};
ws.onmessage = function(e) {var data= e.data;var result = data.split(",");i.form.username = result[0];i.form.password = result[1];console.log(i.form)b.username = i.form.username,b.pass = Jh("".concat([rp(), np()].join("	"), "\n").concat(i.form.password), s.pubkey),b.cid = i.form.mfaId,b.pwencode = "rsa",b.rsakv = s.rsakv,i.showCode && (b.ccode = i.form.ccode)ws.send(JSON.stringify(b));
}; 

服务端代码编写如下:

import asyncio
from websockets.server import serveasync def send_msg(websocket):username_password_list = ['11111111111,111','12345678900,123','66666666666,666',]for username_password in username_password_list:await websocket.send(username_password)async def recv_msg(websocket):while 1:recv_text = await websocket.recv()print(recv_text)async def execute(websocket):await send_msg(websocket)await recv_msg(websocket)async def main():async with serve(execute, "localhost", 9999):await asyncio.get_running_loop().create_future()asyncio.run(main())

先运行服务端代码,然后在登录页面按下Ctrl+Shift+R重新加载被覆写的js文件。
加载被覆写的js文件

接着点击登录按钮后就可以看到控制台输出了我们需要的信息。
客户端获取到的账号密码

服务端接收到的值。
服务端获取到的加密值

{"method":"POST","entry":"miniblog","source":"miniblog","type":1,"url":"https://weibo.com/newlogin?tabtype=weibo&gid=102803&openLoginLayer=0&url=https%3A%2F%2Fweibo.com%2F","username":"11111111111","pass":"1d66f2b206809a66a3a3c8e8a1c164153695ba9e4a7c9ae042b94b740cd609589a9d8d2cebea85dd3f9b0fcd367e29097d60dc6a3ffad801078c48dbef7b549ba4cbc59ae175fc5248f6c45ba9f5df976c91d29b9c2004131bfa5e4dd0d25976275aed9a4ede2f5b050cf2d998b42122ffe6a4988c47b8daf48beb630dccf83a","cid":"","pwencode":"rsa","rsakv":"1330428213","disp":"popup"}
{"method":"POST","entry":"miniblog","source":"miniblog","type":1,"url":"https://weibo.com/newlogin?tabtype=weibo&gid=102803&openLoginLayer=0&url=https%3A%2F%2Fweibo.com%2F","username":"12345678900","pass":"8dc06ec4644537c6a5cee88a392966ff4b5131b7f59eec2dccb97784f860689159f6c0eaa8dae841f7a4f5aae942c81c1397193a506833069f2724bf5ed00bbf3e68f5b5b591fb724d863bc04a279812d7ae8a604bb6791480720d2a432bcad08f979215e145a6c24f84d76e83b3a26a5e002bfcfdf08e03bafa06ef47dff8ec","cid":"","pwencode":"rsa","rsakv":"1330428213","disp":"popup"}
{"method":"POST","entry":"miniblog","source":"miniblog","type":1,"url":"https://weibo.com/newlogin?tabtype=weibo&gid=102803&openLoginLayer=0&url=https%3A%2F%2Fweibo.com%2F","username":"66666666666","pass":"d494239ec4610ec299c390fb62a8970e0110661ab95ba02899c4b92777698c792dd5ba49b9a79c84ad7823722d86a0f918bb328c53137883d3839cb119ce1fba376ee62b694349c6cce4d59bb9e44e67e1f03df4fe36be8f53241ef19106962d7a3eda950e357d0c0486c443ceebf59db71ce91c47df79a6df2018adc9c35c3d","cid":"","pwencode":"rsa","rsakv":"1330428213","disp":"popup"}

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

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

相关文章

鸿蒙开发前景

在科技飞速发展的时代,鸿蒙操作系统的出现犹如一颗璀璨的新星,为全球科技领域带来了新的希望与机遇。那么,鸿蒙开发的前景究竟如何呢? 一、鸿蒙系统的独特优势 1. 分布式架构 鸿蒙操作系统采用分布式架构,能够实现不同设备之间的…

MC1496DR2G高性能平衡调制器/解调器的卓越之选

MC1496DR2G适用于输出电压为输入电压(信号)和开关功能(载波)的共同结果的场合。典型应用包括抑制载波和放大调制、同步检测、调频 (FM) 检测、相位检测和斩波器应用。 MC1496DR2G功能特性: 平衡式工作:具…

深度解析 | 二元Logistic回归模型(单因素筛查、软件操作及结果解读)

一、Logistic回归的类型 Logistic回归(又称逻辑回归)是一种广义的线性回归分析模型,用于研究分类型因变量与自变量之间影响关系。Logistic回归分析根据因变量的不同可分为二元Logistic回归、多分类Logistic回归,有序Logistic回归…

2024.9.9(极客大挑战 2019]EasySQL,[极客大挑战 2019]Knife)

题目一:极客大挑战 2019]EasySQL 1、点开题目链接,来到下面的界面 2、遇到这样的登录界面,先尝试admin和万能密码(1 or 11#),拿到flag 题目二:[极客大挑战 2019]Knife 1、点开链接&#xff0c…

iText2KG:显著降低LLM构建知识图谱时的幻觉现象

1. 当前知识图谱构建存在的问题 知识图谱通过捕捉实体之间的关系来构建知识的结构化表示,在分析文本数据集和从结构化异构数据中推断知识方面具有显著优势。比如,知识图谱能够融合来自多个来源的不同数据,提供一个具有凝聚力的信息视角。还能…

12.2 案例分析专题-数据库设计

数据库设计 ER图 真题1 真题2 1

电脑D盘数据误删怎么恢复?一文教你轻松找回

在日常使用电脑的过程中,我们可能会不小心删除D盘中的重要数据,导致数据丢失。这时,不要慌张,本文将为你介绍几种Windows电脑系统上恢复D盘数据的方法,帮助你轻松找回丢失的数据。 图片来源于网络,如有侵权…

高级算法设计与分析 学习笔记4 二叉查找树

左子树小于父节点小于右子树。 那么如何构建一个二叉查找树呢? 如何遍历一颗树? 这个其实就是中序遍历(在中间访问根节点) 如何查找一个元素? 可以看到后面这种方法更好,虽然都是递归,但后者不…

还不知道MES和PLC咋通信?5分钟看懂

最近网上看到一些写MES和PLC通信的文章。或许因为行业不同的缘故吧,对于里面的一些观点,我个人是持保留意见的。首先在我所在行业里,MES是不会和PLC直接通信的。MES和PLC之间通常还有一个其他系统。该系统在不同行业的叫法不一样。比如有的行…

【828华为云征文|华为云Flexus X实例:一键助力中小企业,快速部署个性化网站!】

文章目录 前言搭建自己专属网站准备工作具体操作服务器环境确认进入宝塔软件商店JTBC网站内容管理系统一键部署填写域名放行80端口JTBC安装初始页数据库信息配置管理员信息配置完成安装网站管理后台网站前台 验证后台配置内容前台访问的效果 结语 前言 在云计算盛行的时代&…

“颂歌唱响 乐动云山”云山天地携手幸福金龄会举办七夕国风艺术展演活动

弘扬中华优秀传统文化,充分挖掘七夕内涵,倡导勤劳智慧、忠贞爱情、家庭美满、追求美好的价值理念,由云山天地主办,幸福金龄会指导,广州风暴文化传媒有限公司承办的“颂歌唱响 乐动云山”七夕国风文化艺术展演活动&…

在python里把图变成gif

import scipy.io import matplotlib.pyplot as plt import imageio import numpy as npdata scipy.io.loadmat("/文件路径/Sol.mat")# 提取数据 t_current data[t].flatten() XX, YY np.meshgrid(data[x].flatten(), data[y].flatten()) u_pred_plot_final data[…

第二百二十三节 JPA教程 - JPA列定义示例

JPA教程 - JPA列定义示例 当将Java bean映射到实体时,我们可以在映射注释中设置数据库表列定义。 以下代码将列定义设置为 VARCHAR(40)。 Column(columnDefinition "VARCHAR(40)") private String name;Column注释表示物理数据库列的特定特征。 例子 …

金智维K-RPA基本介绍

一、K-RPA基本组成 K-RPA软件机器人管理系统基于“RPAX”数字化技术打造,其核心系统由管理中心(Server)、设计器(Control)、机器人(Robot/Agent)三大子系统组成,各子系统协同工作,易于构建协同式环境。 管理中心(Server&#xff…

解决Metasploit调用Nessus报错问题

问题描述 Error while running command nessus_scan_new: undefined method []’ for nil:NilClass 解决方法 发现报错,经过网上查询解决方法 在Nessus服务器执行,下面的版本号可能有所不同,根据自己的情况更改,需要管理员身份执…

AI预测地球未来,温室效应失控?地球变金星?

想象一下,如果地球的气候突然失控,我们熟悉的蓝色星球会变成什么模样? 最近,一项由法国科学家使用人工智能系统进行的气候模拟研究揭示了一个惊人的未来景象:地球可能会变得如同金星一般,拥有高达270个大气…

Jupyter Notebook设置代码提示和自动代码补全

算法学习、4对1辅导、论文辅导或核心期刊可以通过公众号滴滴我 文章目录 在使用Jupyter Notebook中,会出现Jupyter不像Pycharm一样,可以 自动补全代码以及 代码方法提示等功能,这时候就需要通过给Jupyter安装插件来进行实现。 执行步骤&#…

《PneumoLLM:利用大型语言模型的力量进行尘肺病诊断》|文献速递--基于深度学习的医学影像病灶分割

Title 题目 PneumoLLM: Harnessing the power of large language model for pneumoconiosis diagnosis 《PneumoLLM:利用大型语言模型的力量进行尘肺病诊断》 01 文献速递介绍 在计算机辅助诊断领域,对医学数据的处理和分析能力至关重要。这不仅有助…

Nature Communications 多模触觉-视觉融合机器人:用于灵巧机器人做家务

随着机器人越来越多地参与人类日常生活,对模仿人类能力的追求推动了机器人多模态感官的进步。然而,目前的感知技术仍然不能满足机器人在家庭任务/环境中的需求,特别是在多感官整合和融合、快速反应能力和高灵敏度感知方面面临着巨大的挑战。 …

91、K8s之ingress上集

一、Ingress service模式: loadbalance NodePort:每个节点都会有一个指定的端口 30000-32767 内网 clusterip:默认模式,只能pod内部访问 externalName:需要dns提供域名 1.1、对外提供服务的ingress service&…