<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 測試入門篇

    一顆小胡椒2023-02-08 15:56:52
    本文是信安之路 wiki 平臺第 142 篇文章,注冊解鎖全部文章

    Websocket 是一種用于 H5 瀏覽器的實時通訊協議,可以做到數據的實時推送,可適用于廣泛的工作環境,例如客服系統、物聯網數據傳輸系統,

    基礎介紹

    我們平常接觸最多的是 http 協議的接口,http 協議是請求與響應的模式,你發個請求到服務端,服務端給個返回你。

    這種模式并不能滿足我們生活中的全部場景,就拿最近小伙伴們關注的股票基金為例,比如我想關注某個基金當天的凈值估算。

    我打開一個網頁后,這時候我在頁面不需要做任何操作,頁面上的數據會自動刷新,間隔 x 秒或者 x 分鐘,會自動刷新數據。

    要實現這種實時更新的效果,有幾種實現方式:

    1. 還是用 http 請求,用 ajax 輪詢,每間隔固定的時間,詢問一次服務端,從服務端拿最新的數據
    2. 使用 websocket 建立長連接,服務端和客戶端可以互相通信,服務端只要有數據更新,就可以主動推給客戶端

         

    上圖為 ajax 輪詢與 webscokets 實現的方式對比圖,從圖中可以看出 ajax 輪詢是在特定的的時間間隔(如每1秒),由瀏覽器對服務器發出 HTTP 請求,然后由服務器返回最新的數據給客戶端的瀏覽器。這種傳統的模式帶來很明顯的缺點,即瀏覽器需要不斷的向服務器發出請求,然而 HTTP 請求可能包含較長的頭部,其中真正有效的數據可能只是很小的一部分,顯然這樣會浪費很多的帶寬等資源。

    HTML5 定義的 WebSocket 協議,能更好節省服務器資源和帶寬,并且能夠更實時地進行通訊。 瀏覽器通過 JavaScript 向服務器發出建立 WebSocket 連接的請求,連接建立以后,客戶端和服務器端就可以通過 TCP 連接直接交換數據。

    識別方式

    想要識別網站是否使用了 websockets 協議,需要先了解其工作過程,下圖是 WebSocket 工作的詳細過程:

    WebSocket 服務端的連接地址與 http 協議類似,以 ws、wss 開頭,比如:

    ws://ws.xazlsec.com:8888 
    wss://wss.xazlsec.com:9999

    wss 是 ws 基礎上用 ssl 加密傳輸信息,使用 javascript 連接的代碼案例如下:


    var ws = new WebSocket("wss://wss.xazlsec.com:9999/chat");
    

    所以識別網站是否使用該協議,可以從兩個地方分辯:

    1、數據包中是否有 ws、wss 開頭的鏈接地址 2、javascript 代碼中是否包含 WebSocket 這樣的函數調用,或者以 ws、wss 開頭的鏈接

    對于這種協議的數據包,常見的 web 測試工具都具備抓取能力,比如 BurpSuite,ZAP 等:

    常見漏洞

    1、CSWSH(跨站點網站劫持,最為廣泛的漏洞)

    類似于 CSRF 漏洞,在沒有驗證請求源的情況下,任意來源均可以連接 WebSocket 服務器進行數據交互,攻擊者通過構造惡意頁面,誘使用戶訪問,然后借助用戶的身份信息與服務器建立連接,從而劫持用戶身份下的 WebSocket 連接。

    2、XSS(跨站腳本攻擊)

    由于大多數的聊天室,對于用戶輸入過濾不嚴導致 XSS 漏洞的發生。

    3、授權問題

    WebSocket 中沒有可以檢查 IDOR 和 授權問題的標頭

    4、DOS 攻擊

    WebSockets 允許無限數量的連接服務器。攻擊者可以用 DOS 攻擊服務器。這種行為增加了服務器的負擔并耗盡了服務器上的資源致使網站速度大大降低。

    黑盒測試內容

    1、檢查是否可以通過其他來源連接 ws 服務器 2、是否使用了 ssl 加密傳輸敏感信息,也就是服務器連接是否 ws 還是 wss 3、身份驗證檢查,連接 ws 服務器是否需要授權 4、輸入內容是否做了過濾,比如 xss、sql 注入等 payload,檢測是否存在該漏洞

    WebSocket 靶場 DVWS 初體驗

    DVWS 類似于 DVWA,但是客戶端之間的通信是通過 WebSockets 進行,項目地址:

    https://github.com/interference-security/DVWS

         

    首先在 burp 上設置好監聽端口,然后在瀏覽器中設置代理為 burp 監聽的地址:

    暴力破解

    打開 dvws 左側菜單中的暴力破解實驗,輸入賬號密碼之后登錄:

    Burp 截取到的數據包,從 WebSocket History 選項卡中可以看到:

    我們如果想暴力破解這個賬號密碼需要不斷與服務器建立連接,而 Burp 的 Intruder 是針對 http 協議進行利用,所以這里需要用到一個腳本,將 http 協議轉為 WebSocket 協議,腳本地址:

    https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Web%20Sockets/Files/ws-harness.py

    下載腳本后,將 ws 的地址(burp 的代理端口)作為參數,啟動該腳本:

    python ws-harness.py -u “ws://dvws.local:8080” -m ./message.txt

    注意:如果是 https 則使用 wss,message.txt 中保存的是 websockets 消息模板,訪問時以 fuzz 作為參數名,如圖:

         

    啟動后,監聽一個新的端口 8000:

    接下來訪問:

    http://localhost:8000/?fuzz=

    到這里已經實現了 http 協議轉 WebSocket,針對這個連接進行 fuzz,也就是針對 WebSockets 協議的認證做 fuzz,接下來就很簡單了,使用 Intruder 進行 fuzz:

    由于靶場中的用戶名密碼使用了 base64 編碼,所以需要在 burp 中設置:

         

    到這里就完成了針對 WebSocket 協議的認證做暴力破解的操作。

    SQL 注入

    操作過程與暴力破解類似,設置完 http 轉 WebSocket 后:

         

    使用 sqlmap 針對該接口進行測試,需要用到 base64encode 這個 tamper:

    成功利用:

    websocketwebsocket測試工具
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    淺談云安全之K8S
    2021-07-14 05:06:00
    Kubernetes 是一個可移植的,可擴展的開源容器編排平臺,用于管理容器化的工作負載和服務,方便了聲明式配置和自動化。它擁有一個龐大且快速增長的生態系統。Kubernetes 的服務,支持和工具廣泛可用。
    WebSocket 測試入門篇
    2023-02-08 15:56:52
    這種傳統的模式帶來很明顯的缺點,即瀏覽器需要不斷的向服務器發出請求,然而 HTTP 請求可能包含較長的頭部,其中真正有效的數據可能只是很小的一部分,顯然這樣會浪費很多的帶寬等資源。瀏覽器通過 JavaScript 向服務器發出建立 WebSocket 連接的請求,連接建立以后,客戶端和服務器端就可以通過 TCP 連接直接交換數據。
    DNSBin是一款功能強大的DNS與服務器安全測試工具,該工具可以通過DNS來測試數據泄露,并在目標環境部署了嚴苛網絡安全限制的場景下幫助廣大研究人員測試遠程代碼執行(RCE)和XML外部實體注入(XXE)等安全漏洞。
    這些工具大多數是免費開源的安全工具,只有兩款是收費工具
    是一套用于對域名進行偵察的工具。該程序會檢查 SPF 和 DMARC 記錄中是否存在允許欺騙的弱配置。用于發現計算機網絡上的主機和服務,從而構建網絡的“地圖”。自動滲透測試偵察掃描儀。不受 API 限制,因為它使用 Selenium 檢測瀏覽器。輸出報告以幫助關聯跨站點的目標。是一個 python 腳本,它檢查電子郵件帳戶是否在數據泄露中受到損害,如果電子郵件帳戶受到損害,它會繼續查找受損害帳戶的密碼。LinkedIn 枚舉工具,通過搜索引擎抓取從組織中提取有效員工姓名。
    基于Windows11打造的一個滲透測試工具包;本項目制作的初衷是幫助滲透新手快速搭建工作環境,工欲善其事,必先利其器;目前已集成了各類常用開發環境、瀏覽器插件、滲透測試工具和腳本等等;下載地址見文末 !
    淺析websocket劫持
    2022-07-15 15:43:18
    WebSocket劫持漏洞導讀WebSocket協議技術WebSocket是HTML5推出的新協議,是基于TCP的應用層通信協議,它與http協議內容本身沒有關系。為了建立連接,瀏覽器和服務器通過HTTP執行WebSocket握手。此時,網絡連接保持打開狀態,并且可以用于向任一方向發送WebSocket消息。
    雖說是 Spring 框架漏洞,但以下包含并不僅 Spring Framework,Spring Boot,還有 Spring Cloud,Spring Data,Spring Security 等。
    雖說是 Spring 框架漏洞,但以下包含并不僅 Spring Framework,Spring Boot,還有 Spring Cloud,Spring Data,Spring Security 等。 CVE-2010-1622 Spring Framework class.classLoader 類遠程代碼執行 影響版本:SpringSource Spring Framework 3.0.0
    一顆小胡椒
    暫無描述
      亚洲 欧美 自拍 唯美 另类