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

爬虫 Web Js 逆向:RPC 远程调用获取加密参数(1)WebSocket 协议介绍

RPC (Remote Procedure Call) 是远程调用的意思。

在 Js 逆向时,本地可以和浏览器以服务端和客户端的形式通过 WebSocket 协议进行 RPC 通信,这样可以直接调用浏览器中的一些函数方法,不必去在意函数具体的执行逻辑,可以省去大量的逆向调试时间。
本文先介绍 WebSocket 协议相关内容。

1. 简介

WebSocket是一种在单个TCP连接上进行全双工通信的协议。

优点:WebSocket 协议使客户端和服务器端之间的数据交换变得更加简单,它允许交互双方创建持久连接,同时支持服务器端主动向客户端推送数据。

注意:WebSocket 协议规范只作为参考,所以服务器端和客户端的连接条件和消息格式通常由服务器端开发者决定。
因此,服务器端可以在握手时对客户端进行身份校验,在消息传递或数据帧方面也可以设计一些用于反爬虫的方法。
服务器端可以以任何理由关闭连接,开发者常常利用这些特点限制爬虫连接或者获取数据。

注意:WebSocket是独立的、创建在TCP上的协议,双端通过HTTP/1.1协议进行握手,握手成功后才会转为WebSocket协议(WebSocket 握手,即连接请求的过程)
服务器端接收客户端发起的握手请求后,返回的握手结果中包含状态码和当前所用的协议,其中,Status Code 代表本次握手结果,状态码中的101表示连接成功。

2. WebSocket 连接

我们可以通过 Chrome 开发者工具中的 Network 面板,查看WebSocket的连接信息及传输的数据。
如下图(状态码 101 表示连接成功):

上图中箭头向上的数据是客户端发送给服务器端的,箭头向下的是服务器端推送给客户端的。

注:如果 Network 面板没有 Type 列,可以鼠标右键在菜单中选择(Scheme 协议也可以显示出),如下图:

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • C++简单界面设计
  • 【初阶数据结构】通讯录项目(可用作课程设计)
  • 突破传统看车局限,3DCAT实时云渲染为东风日产奇骏赋能
  • Django 安装指南
  • ui自动化难点
  • UE5学习笔记9-创建一个小窗口提示人物是否和武器重叠
  • 【人工智能】Transformers之Pipeline(十):视频分类(video-classification)
  • C语言常用的数据结构
  • Python | Leetcode Python题解之第331题验证二叉树的前序序列化
  • PPPoE基础笔记
  • String 事务
  • 大模型面试系列-大模型算法工程师的面试题目与解答技巧详细说明
  • 安美数字酒店宽带运营系统 weather.php 任意文件读取漏洞复现
  • redis面试(十五)公平锁队列重排
  • 封装clickHouse线程池与ibeetl解析SQL并对结果转进行转化
  • 【译】JS基础算法脚本:字符串结尾
  • 分享的文章《人生如棋》
  • 《深入 React 技术栈》
  • 10个确保微服务与容器安全的最佳实践
  • 2018天猫双11|这就是阿里云!不止有新技术,更有温暖的社会力量
  • Javascript 原型链
  • Java面向对象及其三大特征
  • mysql常用命令汇总
  • PHP那些事儿
  • webpack入门学习手记(二)
  • 翻译--Thinking in React
  • 问:在指定的JSON数据中(最外层是数组)根据指定条件拿到匹配到的结果
  • 新版博客前端前瞻
  • ​Distil-Whisper:比Whisper快6倍,体积小50%的语音识别模型
  • ​七周四次课(5月9日)iptables filter表案例、iptables nat表应用
  • #FPGA(基础知识)
  • #Lua:Lua调用C++生成的DLL库
  • #pragma once与条件编译
  • (06)金属布线——为半导体注入生命的连接
  • (C#)Windows Shell 外壳编程系列9 - QueryInfo 扩展提示
  • (Java实习生)每日10道面试题打卡——JavaWeb篇
  • (笔试题)合法字符串
  • (大众金融)SQL server面试题(1)-总销售量最少的3个型号的车及其总销售量
  • (二)十分简易快速 自己训练样本 opencv级联lbp分类器 车牌识别
  • (二)学习JVM —— 垃圾回收机制
  • (附源码)ssm基于jsp高校选课系统 毕业设计 291627
  • (南京观海微电子)——COF介绍
  • (四)JPA - JQPL 实现增删改查
  • (一)十分简易快速 自己训练样本 opencv级联haar分类器 车牌识别
  • (原創) 博客園正式支援VHDL語法著色功能 (SOC) (VHDL)
  • ******之网络***——物理***
  • .NET C# 配置 Options
  • .NET Core 中的路径问题
  • .NET Core中的去虚
  • .NET 药厂业务系统 CPU爆高分析
  • .NET 自定义中间件 判断是否存在 AllowAnonymousAttribute 特性 来判断是否需要身份验证
  • .Net面试题4
  • .net之微信企业号开发(一) 所使用的环境与工具以及准备工作
  • @DateTimeFormat 和 @JsonFormat 注解详解
  • @PreAuthorize与@Secured注解的区别是什么?