看我如何分析并渗透WebSocket和Socket.io

WebSocket之socket.io的基本使用 使用WebSocket可以实现非常多有趣又实用的功能,后面再写一个在线聊天室巩固一下知识。推荐阅读【微信小程序&uniapp系列文章】【Vue实用插件及技巧系列文章】 阅读详情

Websocket简介

WebSocket是一种允许浏览器和服务器建立单个TCP连接然后进行全双工异步通信的技术。由于它允许实时更新,而浏览器也无需向后台发送数百个新的HTTP polling请求,所以对于web程序来说,WebSocket非常流行。这对于测试者来说是不好的,因为对WebSocket工具的支持不像HTTP那样普遍,有时候会更加复杂。

除了BurpSuite之外,还有一些其他工具可用于处理WebSocket。不过经过测试,它们都不怎么理想。

Zed Attack Proxy (ZAP)

Pappy Proxy

Man-in-the-Middle Proxy (mitmproxy)

WebSocket/Socket.io (WSSiP)

如果你对使用Websocket进行渗透测试感兴趣,那么可以查看这篇文章:

https://www.blackhillsinfosec.com/command-and-control-with-websockets-wsc2/

而在这篇文章中主要会讲socket.io,它是一个很流行的JavaScript WebSockets库。在GitHub上它有多流行呢?—已经有超过41.4的star了。

在NPM上,它在WebSocket中排行第二和第三。

另外,OWASP Juice-Shop这样非常棒的项目也使用了socket.io库,所以本篇文章中将使用websocket.io进行演示。

https://github.com/bkimminich/juice-shop/search?utf8=%E2%9C%93&q=socket.io&type=

在本文中,我们假设你已经熟悉使用BurpSuite测试Web应用程序,所涵盖的所有内容都可以在其社区版本中完成。不用多说,现在开始吧。

如果我们在浏览器中访问Juice-Shop,则可以在后台快速查看WebSocket流量。你也可以在BurpSuite中通过Proxy-> WebSockets历史记录找到。

由于协议的无状态特性,HTTP需要始终发送请求/响应对,而WebSocket是一种有状态协议。这意味着你可以从服务器获得任意数量的传出“请求”和任意数量的传入“响应”。由于底层连接是保持打开的TCP,因此客户端和服务器可以随时发送消息而无需等待对方。这就是为什么WebSocket历史记录与你习惯查看的HTTP历史记录存在差异。

在此界面中,你可以看到发送和接收的单字节消息。但是,当应用程序执行一些有趣的操作时,你就可以看到具有更大负载的消息。

BurpSuite具有测试WebSockets的能力,你可以实时进行拦截和修改,但WebSocket没有Repeater,Scanner或Intruder功能。默认情况下,如果要在BurpSuite中启用WebSocket拦截,你只需要打开主拦截就好了。

这样一来,你就可以通过与HTTP相同的方式获取所截获的WebSocket消息。同时也可以在拦截窗口中编辑它们。

在WebSockets历史记录选项卡中可以查看已编辑的消息。

将WebSocket降级为HTTP

方法一:使用Socket.io的HTTP回退机制

一个非常奇怪的点是,有时在HTTP历史记录中也能看到类似Websocket历史记录中的消息,回想一下,这些比较有趣的WebSocket消息需要解决记分板相关问题,下图显示了来自服务器的相同响应,但这次是在HTTP历史记录中。由此可以看出socket.io能够通过WebSocket或HTTP发送消息。

在所观察的请求中,传递的参数值有些为“websockets”,而有些则是“polling”。那么据推测,可能为了防止WebSockets在应用程序中不受支持或被阻止,才允许使用HTTP。

socket.io文档中解释了“polling”和“websockets”如何作为两个默认传输选项。它还介绍了如何通过将WebSockets指定为唯一传输方式来禁用polling。我认为反过来也是如此,我可以指定polling作为唯一的传输机制。

https://socket.io/docs/client-api/#with-WebSocket-transport-only

通过搜索socket.io.js源代码,我找到了以下内容:

this.transports=n.transports||["polling","WebSocket"]

这行代码会将一个名为transports的内部变量设置为传入的值,如果传入的值为false/empty,则为默认的[“polling”,“websocket”]。这很符合我们对polling和WebSocket的默认传输的推测。现在通过Burp中的Proxy->Options下设置匹配并替换规则来更改这些默认值,看看会发生什么。

成功了!添加规则后,刷新页面(需要启用Burp的内置规则“Require non-cached response”或执行强制刷新),数据不再通过WebSockets进行通信。进展不小,但是如果使用的应用程序已经提供了优先于我们的新默认值的传输选项呢?在这种情况下,我们可以修改匹配和替换规则。以下规则应适用于socket.io库的不同版本,并忽略应用程序开发人员所指定的任何传输方式。

以下是要使用的字符串,务必将其设置为正则表达式匹配:

this\.transports=.*?\.transports\|\|\["polling","websocket"]

this.transports=["polling"]

方法二:中止Websocket升级

方法一只能用于于socket.io,可能会扩展到其他客户端库。但是,以下方法应该更加通用,因为它以WebSockets协议本身为目标。

经过分析,我发现WebSockets首先通过HTTP进行通信,以便与服务器协商并“升级”为WebSocket。其中重要的部分是:

1)客户端通过一些WebSocket特定header发送升级请求。

2)服务器响应状态码为101 Switching Protocols,以及WebSocket header。

3)通信转换到WebSocket,此特定会话不再使用HTTP。

WebSockets RFC文档第4.1节提供了有关如何中断此工作流的各种信息,以下是https://tools.ietf.org/html/rfc6455#section-4.1的摘录,并附加了观点。

1.如果从服务器收到的状态码不是101,则客户端响应HTTP[RFC2616]。特别情况下,收到401状态码时,客户端可能会执行身份验证;服务器也可能会通过3xx状态码重定向客户端(但客户不需要遵循)等。否则按以下步骤进行。

2.如果响应缺少Upgrade header,或Upgrade header包含的值与“WebSocket”的ASCII不匹配,则客户端必须关闭WebSocket连接。

3.如果响应缺少Connection header,或Connection header包含的值与“WebSocket”的ASCII不匹配,则客户端必须关闭WebSocket连接。

4.如果响应缺少Sec-WebSocket-Accept header,或Sec-WebSocket-Accept header的值并非是由Sec-WebSocket-Key(作为字符串,未经base64解码)与字符串”258EAFA5-E914-47DA-95CA-C5AB0DC85B11″串联起来的字符串(忽略任何前导和尾随空格)的base64编码后的SHA-1值的话,则客户端必须关闭WebSocket连接。

5.如果响应中包括Sec-WebSocket-Extensions header,并且header要求使用的扩展并没有出现在客户端的握手消息中(服务器指示的扩展并非是客户端所请求的),则客户端必须关闭WebSocket连接。(解析header以确定请求哪些扩展的问题,将在第9.1节中讨论)

考虑到这些“连接必定被关闭”的条件,我想出了以下一套替换规则,这些规则应该包含了所有五个的失败条件。

一旦使用这些规则,所有WebSocket升级请求都会失败。由于socket.io默认情况下无法使用HTTP,因此已经达到所需的效果。其他库的表现可能不同,并导致你正在测试的应用程序出错。但我们的工作就是让软件做一些不应该做的事情!

原始响应看起来像这样,并且会使客户端和服务器转换到WebSocket进行通信。

相反,客户端从服务器收到此修改后的响应,会关闭WebSocket连接。

我在测试中遇到的一件事是,在将这些匹配和替换规则加入后,客户端在重试WebSocket连接时非常持久,并在我的HTTP历史记录中引起了大量不必要的流量。如果你正在处理socket.io库,则最简单的方法是使用上面的方法1。如果你有不同的库或其他情况,则可能需要添加更多规则来使客户端服务器不支持WebSocket。

将Burp Repeater作为Socket.io客户端

由于我们强制通过HTTP而非WebSockets进行通信,所以现在可以添加自定义匹配并替换将应用于已经通过WebSockets流量的规则!接下来,可以使用Repeater,Intruder和Scanner等工具,这些更改将特定于socket.io库。不过现在还有两个问题:

1.每个请求都有一个会话号,任何无效请求都将导致服务器终止该会话

2.每个请求的主体都有一个计算字段,表示消息的长度。如果这不正确,服务器会将其视为无效请求并终止会话。

以下是应用程序中使用的几个示例URL。

 

 

/socket.io/?EIO=3&transport=polling&t=MJJR2dr

/socket.io/?EIO=3&transport=polling&t=MJJZbUa&sid=iUTykeQQumxFJgEJAABL

 

URL中的“sid”参数表示到服务器的单个连接流。如果发送了无效消息(在尝试破解时很常见),那么服务器将关闭整个会话,之后必须重新开始新会话。

给定请求的主体中含有一个字段,其中存放有效载荷的字节数。这类似于“Content-Length”HTTP header,只不过该字段的值近针对socket.io。例如,如果你要发送的有效载荷是“hello”,那么,相应的主体将是“5:hello”,Content-Length头部的值是7。其中,5表示字符串“hello”中的字母数量,而7则表示字符串“hello”中的字母数量以及socket.io添加到主体内的字符串“5:”中的字母数量之和。与往常一样,Burp将替我们更新Content-Length头部,因此,这件事情我们无需担心。但是,我还没有找到能够自动计算和包含有效载荷长度的好方法。更让人头疼的是,我发现socket.io竟然会在同一个HTTP请求中发送多条消息。由于每个消息都是一个封装后的WebSocket有效载荷,并且每个消息都有自己的长度,因此,最终看起来就像这样:“5:hello,4:john,3:doe”(实际的语法可能有所不同,这里只是便于演示)。计算长度时一旦出错,服务器就会将其作为无效消息拒绝,这样,我们就要重新开始了。

这是body的示例。这是Juice-Shop应用程序中的响应,请求的格式相同。注意,这里的“215”表示“:”之后的有效载荷的长度。

215:42[“challenge solved”,{“key”:”zeroStarsChallenge”,”name”:”Zero Stars”,”challenge”:”Zero Stars (Give a devastating zero-star feedback to the store.)”,”flag”:”e958569c4a12e3b97f38bd05cac3f0e5a1b17142″,”hidden”:false}]

宏

使用Burp宏能解决第一个问题。基本上,每次Burp在服务器拒绝消息时匹配,宏将自动建立新会话并用有效的“sid”更新原始请求。通过转到options->Sessions->Macros->Add来创建新宏。

建立新会话的URL只需省略“sid”参数。例如:

/socket.io/?EIO=3&transport=polling&t=MJJJ4Ku

服务器响应包含一个全新的“sid”值以供使用。

接下来,单击“Configure item”按钮,并将参数名称命名为“sid”。然后,选择“Extract from regex group”选项,并使用如下所示的正则表达式。

"sid"\:"(.*?)"

这时,配置窗口应如下所示:

会话处理规则

现在有了一个宏,我们需要一种方法来触发它。这就是Burp会话处理规则的用武之地。通过

Project options->Sessions->Session Handling Rules->Add

为“Check session is valid”创建新的规则动作:

配置新规则操作如下:

按如下方式配blackhillsinfosec置新规则操作:最后,在完成新规则操作后,还需修改规则的范围。你可以在此处决定要应用此规则的位置。建议至少将它用于Repeater,这样就可以手动重复请求。

以下是我配置范围规则的方法。你可以更加具体地了解自己所需范围,但下面的选项应该适用于大多数情况。

这是在没有会话处理规则的情况下发出的请求:

这里是在会话处理规则生效后发出的相同请求:

 

27种反弹Shell实战指南:从原理到应用场景全面解析 在网络安全领域,进程间通信(IPC)和输入输出重定向是操作系统的基础概念,它们允许不同进程之间交换数据。当这些技术通过网络套接字(Socket)延伸时,便形成了远程命令执行的核心机制。反弹Shell正是利用这一原理,通过重定向Shell的标准输入、输出和错误流到网络连接,实现远程控制。其技术价值在于突破网络隔离限制,在防火墙仅允许出站流量的环境中建立交互式会话。在渗透测试和红队演练等应用场景中,掌握多种反弹Shell方法至关重要,因为实战环境千变万化,可能面临工具缺失、协议过滤或Shell环境受限等挑战。例 阅读详情

相关推荐

从受限RCE到稳定Getshell:实战渗透中的组合拳技术解析

远程代码执行(RCE)漏洞是渗透测试中常见的高危漏洞,其原理是攻击者能够通过注入恶意代码在目标服务器上执行任意命令。然而,在实际攻防对抗中,单纯的RCE往往面临命令执行受限、网络隔离、工具缺失等重重障碍,难以直接转化为稳定的控制权。其技术价值在于,通过一系列环境探测、限制绕过和通道构建技术,将孤立的漏洞点串联成完整的攻击链,最终实现权限维持。在应用场景上,这要求测试者深入理解系统环境、网络架构和安全策略,灵活运用编码传输、内网穿透和载荷投递等技术。本文聚焦于RCE漏洞组合拳,通过热词【反弹Shell】和【权

chutisun0039的博客 391

Websocket长连接接口渗透测试过程随记

但是使用插件多次连接WS接口发现都是403,研究了一番后发现,目标会检测Origin头,如果不是自己站点,就直接返回403,因此需要用Burp来修改请求头。打开bp,找到repeater,新建一个websocket会话,选择刚刚已经建立连接的Websocket会话,并点击下方的Attach。最近接到公司的一个API接口测试的项目,除了常规的HTTP协议的API接口外,其中还有一部分是需要测试Websocket接口的。然而在我寻找了插件的各个角落,也没有发现存在自动回复pong包的功能,很遗憾这种方法失败。

Python_0011的博客 1776

WebUI自动化测试框架搭建(python+pytest+selenium+allure)

将鼠标移动到要定位的元素上面>右键>点击“检查”>在元素代码上右键>复制>复制XPath。

m0_63729339的博客 1281

websocket.io用法

webcoket 使用 websocket是可以进行双向通话,服务器可以主动向浏览器发送消息。 使用websoket.io 1.如何进行连接:(客户端) var socket = io("localhost:3000") (服务器端) var app = require("express")(); var http = require('http').createServer(app); var io = require('socket.io')(http); //express 处理静态资源 app.

YangMo_的博客 1949

手把手教你用AirSim生成无人机训练数据集:RGB/深度图/分割图全攻略

本文详细介绍了如何使用AirSim仿真插件在UE4环境中生成无人机训练数据集,涵盖RGB、深度图和分割图等多种模态数据的采集与处理。通过实战指南,读者可以掌握环境配置、多模态数据采集、自动化流程设计及数据后处理等关键技术,为无人机视觉算法开发提供高质量训练数据。

weixin_29008805的博客 449

EG800K 4G模块AT指令避坑指南:让你的STM32物联网项目稳定连接云端

本文详细解析了EG800K 4G模块在STM32物联网项目中的AT指令应用避坑指南,涵盖从底层协议到云端稳定的全链路优化策略。通过实战案例和防护机制,帮助开发者解决常见通信陷阱,提升云端通信的稳定性和效率。

weixin_26834815的博客 288

渗透攻击实例-WebSocket攻击

跨站WebSocket劫持(也称为跨域WebSocket劫持)是一种由于WebSocket握手流程的安全缺陷所导致的跨站点请求伪造(CSRF)漏洞。当WebSocket握手请求仅依靠HTTP cookie进行会话处理并且不包含任何CSRF token或其他不可预测的值时,就会出现这种漏洞。攻击者可以在自己的站点上创建一个恶意网页,从而建立与易受攻击的应用程序的跨站点WebSocket连接。该应用程序将在受害用户与该应用程序的会话的上下文中处理连接。

Python_0011的博客 1966

麒麟桌面操作系统QT开发环境搭建

麒麟操作系统安装Qt

因为热爱,所以坚持,记录工作中的乐趣 9273

websocket.io

一. 服务器端 使用express服务 const path = require('path'); const app =express();//其实是一个监听函数 const server = require('http').createServer(app); //使用静态文件中间件,把当...

chengxiaocong1131的博客 438

多重共线性问题 -- 岭回归方法

概述 本篇博客分为三大部分,线性模型、多重共线性问题和岭回归。其中,线性模型中介绍了线性模型定义和普通最小二乘法对线性模型的拟合。第二部分,借由1987-2007年的人口、消费和科技对碳排放的影响的数据来说明多重共线性问题(包括如何从定性和定量两个方面判断多重共线性问题)和多重共线性问题对普通最小二乘估计的影响。第三部分,使用岭回归对第二部分中的多重共线性问题进行拟合,并基于R2R^2R2决定系数...

楚江客的记录 1万+

ASP.NET Core 6 Web API在IIS上的部署与调试

通过以上步骤和配置,你应该能够成功部署并调试你的ASP.NET Core 6 Web API在IIS上。记住,权限和配置是关键,确保你的环境和应用程序代码都正确设置。希望这篇博客对你部署和解决IIS上的问题有所帮助。

m0_74337424的博客 522

WebSockets与Socket.io渗透测试实战指南

WebSockets是一种允许浏览器与服务器建立单一TCP连接并实现双向异步通信的技术。这对Web应用极具价值,可实现实时更新而无需浏览器在后台发送大量HTTP轮询请求。但对渗透测试者而言,由于工具对WebSockets的支持远不如HTTP普遍和成熟,这增加了测试难度。本文重点聚焦socket.io——一个流行的JavaScript WebSockets库,但部分技术思路也可应用于其他库或通用WebSockets协议。

分享技术点滴 1007

基于TF-IDF+KMeans聚类算法构建中文文本分类模型(附案例实战)

TF-IDF(Term Frequency-Inverse Document Frequency, 词频-逆文件频率)是一种用于资讯检索与资讯探勘的常用加权技术。TF-IDF是一种统计方法,用以评估一字词对于一个文件集或一个语料库中的其中一份文件的重要程度。字词的重要性随着它在文件中出现的次数成正比增加,但同时会随着它在语料库中出现的频率成反比下降。简单来说就是:一个词语在一篇文章中出现次数越多, 同时在所有文档中出现次数越少, 越能够代表该文章。这也就是TF-IDF的含义。

m0_64336780的博客 1万+

利用codeblocks实现socket_Socket.io-file NPM模块中的文件类型

写在前面的话在一次渗透测试过程中,我们所面对的应用程序安全系数比较高,没有存在太多的错误配置,因此简单分析并没有发现安全问题。但是深入分析后,我们发现了一个运行在嵌入式设备上的Web应用程序。这个Web应用程序使用了WebSocket来实现服务器和客户端之间的通信,为了使用WebSocket,后端系统可以选择的技术有很多种,而这里使用的是Socket.io。这个应用程序的主要功能之一就是文件上传,...

weixin_34542623的博客 213

【安全机制分析案例】从PDF预览页面提取原始PDF文件的方法原理与实践 篇二:基于致远互联(Seeyon)封装的SuwellLightRead技术

该HTML代码片段展示了致远OA协同办公系统的前端页面结构,包含多个CSS样式表和JavaScript文件的引用。页面设置了IE兼容模式,加载了全局环境变量、UI组件库和公告模块相关资源。代码中定义了系统路径、静态资源后缀等全局变量,并包含公告查看功能的相关配置参数。页面还引用了水印、文档处理、即时通讯等功能的JS文件,并设置了文件下载框架。整体呈现了一个典型的OA系统前端实现方案,包含浏览器兼容处理、资源加载和功能模块初始化等逻辑。

生活在别处 2074

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

websocket 文件上传_Socket.io-file NPM模块中的文件类型

写在前面的话在一次渗透测试过程中,我们所面对的应用程序安全系数比较高,没有存在太多的错误配置,因此简单分析并没有发现安全问题。但是深入分析后,我们发现了一个运行在嵌入式设备上的Web应用程序。这个Web应用程序使用了WebSocket来实现服务器和客户端之间的通信,为了使用WebSocket,后端系统可以选择的技术有很多种,而这里使用的是Socket.io。这个应用程序的主要功能之一就是文件上传,...

weixin_39714164的博客 319

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

深度解析AhMyth Android RAT:远程管理工具架构设计与实现原理

AhMyth是一款基于C/S架构的Android远程管理工具,专为安全研究人员和渗透测试人员设计,通过Socket.IO实现双向实时通信,提供完整的设备监控、文件管理、摄像头控制等远程管理功能,解决移动设备安全评估中的远程控制技术挑战。 ## 技术定位与价值主张 在移动安全研究领域,Android设备的安全评估需要专业的远程管理工具来实现深度渗透测试。AhMyth Android RAT采用客

gitblog_00268的博客 407

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

CVE-2025-1094漏洞实战:从SQL注入到WebSocket劫持的RCE利用链分析

SQL注入作为经典的Web安全漏洞,其原理在于攻击者通过构造恶意输入,干扰应用程序的数据库查询逻辑,从而窃取、篡改数据或执行未授权操作。在纵深防御体系中,数据库安全常被视为后端防线,但现代应用架构中数据库与中间件、前端服务的深度集成,使得单一漏洞可能引发连锁反应,技术价值在于揭示了攻击面从数据层向应用运行时延伸的风险。结合WebSocket这一广泛用于实时通信的协议,其安全实现若存在缺陷,可能成为权限提升的跳板。本文以CVE-2025-1094为例,剖析了PostgreSQL中一处SQL注入点如何通过Web

anjichan4261的博客 748

L3MON:基于Node.js的云端Android远程管理套件深度解析

在移动设备管理领域,L3MON作为一个开源项目,为安全研究人员、渗透测试人员和开发者提供了一个功能强大的云端Android远程管理解决方案。该项目采用Node.js作为后端支撑,结合WebSocket实时通信技术,构建了一个完整的远程设备管理生态系统。 ## 技术架构与设计理念 L3MON采用模块化设计思想,将系统划分为多个核心组件,每个组件都承担着特定的功能职责。项目的主要技术栈包括Node

gitblog_00593的博客 443

react websocket通信_React数据大屏的应用实践

本文首发于 hzzly的博客原文链接:React数据大屏的应用实践数据大屏与数据可视化现如今大数据已无所不在,并且正被越来越广泛的被应用到历史、政治、科学、经济、商业甚至渗透到我们生活的方方面面中,获取的渠道也越来越便利。今天我们就来聊一聊“大屏应用”,说到大屏就一定要聊到数据可视化,现如今,数据可视化由于数据分析的火热也变得火热起来,不过数据可视化并不是一个新技术,可视化数据就是用可视化的方式展...

weixin_39811101的博客 440

Android安全监控工具深度解析:AhMyth RAT架构原理与实战部署指南

AhMyth Android RAT是一款基于Electron框架开发的Android远程管理工具,专为安全研究人员和渗透测试人员设计,提供完整的设备监控与管理功能。该工具采用客户端-服务器架构,支持实时位置跟踪、摄像头访问、文件系统操作等核心安全测试功能,是移动设备安全评估的重要技术工具。 ## 概念解析:AhMyth技术架构设计 AhMyth采用现代化的技术架构,由两个核心组件构成:服务器

gitblog_01130的博客 398

L3MON:分布式实时Android设备管理架构与多协议通信解决方案

L3MON是一个基于Node.js构建的云端分布式Android设备远程管理平台,采用实时双向通信架构,为安全研究人员和渗透测试人员提供毫秒级响应的设备监控与控制解决方案。该平台集成了Socket.IO实时通信、APK动态重构和低延迟数据采集技术栈,实现了对Android设备的多维度数据采集与远程控制能力。 ## 技术架构解析:分层式微服务通信模型 ### 数据采集层:Android客户端逆向

gitblog_01146的博客 362

Node.js与WebSocket实现实时通信全攻略

WebSocket协议作为HTTP协议的补充,实现了真正的全双工通信,解决了传统HTTP轮询的效率问题。其核心原理是在单个TCP连接上建立持久化通道,允许服务端主动推送数据,特别适合实时性要求高的场景。Node.js凭借事件驱动和非阻塞I/O特性,成为构建WebSocket服务的理想平台。在电商大促、在线协作、金融交易等场景中,这种技术组合能轻松应对每秒上万级的并发请求。通过心跳检测、二进制传输、Redis广播等进阶技巧,开发者可以构建高性能的实时通信系统。本文以电商订单状态更新为案例,详细讲解从环境搭建到

weixin_34221276的博客 395

渗透测试实战:从抓包到漏洞挖掘的完整工具链与实战技巧

在网络安全领域,抓包分析是理解应用通信原理、诊断安全缺陷的核心技术。其原理是通过代理工具作为中间人,拦截并解析客户端与服务器之间的网络数据流,从而实现对HTTP/HTTPS等协议流量的可视化观察、修改与重放。这项技术的价值在于,它能让安全工程师像进行外科手术般,精准洞察应用内部的数据流转逻辑,是发现SQL注入、逻辑越权、信息泄露等安全漏洞的基石。在应用场景上,无论是Web应用、移动端App还是API接口的安全测试,抓包都是不可或缺的环节。本文聚焦于**Burp Suite**、**Fiddler**等主流抓

weixin_30617797的博客 361

Jitsi Meet安全审计实战:从自动化扫描到手动渗透测试的完整指南

开源视频会议系统的安全性是保障企业通信隐私与数据完整性的核心议题。其安全机制不仅依赖于端到端加密等基础原理,更与系统配置、依赖项管理和网络防护等工程实践紧密相关。深入的安全审计能有效识别从应用层到基础设施层的潜在风险,为高价值的企业内部部署和客户定制化服务提供关键保障。本文聚焦于Jitsi Meet这一广泛应用的开源方案,通过结合自动化漏洞扫描与手动渗透测试的实战方法,系统性地拆解其安全评估流程,涵盖依赖项审计、配置核查、身份认证测试及WebRTC媒体流安全等关键环节,旨在为运维工程师和安全架构师提供一套可

weixin_33913332的博客 529

【前端/JS框架】CVE-2026-44578:Next.js SSRF 漏洞深度解析与修复实战指南

2026 年 5 月,Vercel 紧急披露 Next.js 高危 SSRF 漏洞(CVE-2026-44578),攻击者可通过特制 WebSocket 升级请求实施服务端请求伪造,暴露内网服务和云元数据端点。本文深度剖析漏洞原理、影响范围,提供完整的修复方案、临时缓解措施和生产环境最佳实践,帮助开发者快速应对这场安全危机。

腾讯云创作之星、华为云云享专家,深耕电商全栈高并发系统实战,分享可商用商城项目源码。 1037
上一篇: 计算机操作系统复习精简版
下一篇: 使用WebSocket WSC2进行命令和控制
FLy_鹏程万里
FLy_鹏程万里 优质创作者: 后端开发技术领域 优质创作者: 后端开发技术领域 领域专家: 操作系统技术领域 领域专家: 操作系统技术领域
博客等级 码龄9年 1万+粉丝 1364原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值