【漏洞潜在风险】弹框干扰类风险

弹框干扰风险定义:

   游戏过程中,客户端经常会以文字类形式对玩家进行说明和指引,而对于一些更为重要的信息,便会用游戏中的弹框进行强调。由玩家主动触发对其他玩家造成重复弹框进而干扰到正常游戏的都可以称之为弹框干扰类风险。

弹框干扰风险危害:

   很多玩家在想,游戏自身就提供了弹框,如果出现了弹框点掉不就好了?能有什么风险呢?我们来看看以下场景:当你在游戏过程中,正在操作着角色时,突然间出现了一个弹框

在这里插入图片描述
而此时你的任何按键,鼠标点击,均因为这个弹框而失效,你的一次次操作全部失效,角色头顶上显示一个个miss的提示,你只能去点掉这个弹框,而对于这种即时操作类竞技游戏,最终因为正常游戏操作受到极大干扰而输掉比赛。

   当你在某游戏排位赛的时候,正在聚精会神的盯着屏幕观察战局时,突然屏幕中间出现了下面的弹框

在这里插入图片描述
此时别说你的操作了,你连敌人都看不到,输掉比赛就顺理成章了
更有甚者,在你没有进行竞技类游戏操作的时候,他也给你弹框,让你根本无法正常游戏,以达到他勒索的目的(下图为某游戏玩家因受到弹框勒索而进行投诉)
在这里插入图片描述
由此可见,看似寻常的弹框类风险,稍加利用便可以对游戏和玩家带来极大的影响:

极大的影响游戏平衡:在竞技类游戏中,通过弹框干扰其他玩家正常游戏,最终让其输掉比赛或自己获得收益

极大的破坏游戏口碑:玩家受到弹框干扰,无法正常游戏,极大影响游戏体验,破坏游戏心情,引发游戏玩家的不满和吐槽,最终破坏游戏口碑

弹框风险可进一步演化成游戏内的敲诈勒索风险:利用弹框无限干扰其他玩家以达到自己的需求(勒索其他玩家向其支付游戏币或游戏道具等)
弹框干扰风险存在原因:

结合游戏弹框案列, 无限弹框之所以能成为漏洞,首先需要具备2个属性,一个是可以干扰到玩家游戏,如果弹框对玩家没有干扰效果,那玩家也不一定会去在意,第二个是可以无限进行触发,如果弹框触发了一次之后便再也不会出现或者隔一段较长时间才能触发,那对玩家的影响也不会特别大。结合这两个属性,可将弹框的成因进一步归纳如下:
在这里插入图片描述
弹框干扰类风险漏洞挖掘方法:

   根据上述原因分析可知,一般游戏内被动产生的弹框提示(比如游戏指引,玩法说明等)不受玩家控制,产生漏洞的可能性不高,而漏洞主要产生在由玩家触发的弹框中,如何分析提取弹框类协议中玩家标志字段是弹框干扰类风险挖掘方法的核心。

我们将一般弹框类协议格式大体如下:
在这里插入图片描述
漏洞挖掘的关键是,确认其中的玩家uin,并替换成你想要攻击的玩家,进行协议重发,观察服务器的反馈情况,具体参加下面例子:

某游戏在游戏比赛中存在着邀请玩家和拒绝玩家两条协议,案例情景为B向玩家A发送邀请,玩家A拒绝了邀请,拒绝协议经服务器至B。
大体协议交互为下图
在这里插入图片描述
利用工具,可将A玩家拒绝B的协议3和4截获,

协议3(A玩家拒绝B的上行数据包)的数据包截获为:

[BF 02 C0 F1 0c 00 BF 02 C0 A5 50 B1 A5 A0 B8 98 8D 02 00 00 00]

通过协议切割,可解析成

[BF 02 C0] 协议号

[F1 0C 00 BF 02 C0 ]

A5 50 B1 A5 :被拒绝玩家UIN(指玩家B)

A0 B8 98 8D :主动拒绝玩家UIN(指玩家A)

协议4(A玩家拒绝B的下行数据包)截获为:

[C0 02 C1 F1 0C 00 C0 02 C1 A0 B8 98 8D A5 50 B1 A5 02 00 00 00]

被协议工具解析成:

[F1 0C 00 C0 02 C1 ]

分析上述协议,如果我们将上述协议3多次重发,那么在游戏中,玩家B就会收到多个拒绝类型的弹框,而我们可分析得到其他玩家C或者D的uin, 替换到协议3中被拒绝玩家UIN字段里,那么就可以攻击指定的玩家了。

类似的,上述协议交互中,协议1协议2同样也会存在着被邀请玩家的UIN,我们可以替换成要攻击的玩家,并多次进行协议重发,就可以实现邀请类型的协议弹框了。

上述利用方法,可针对一般游戏进行测试,但是往往会遇到一些游戏做了协议重放校验,导致了我们利用工具重发失败。一般这种情况下,需要分析协议中是否含有类似与验证token,一般这个token属于一次性的,服务器校验通过则会使协议生效,而进行重放的话,每次的token都相同,服务器自然会主动丢弃。面对这种情况,则我们需要从协议发送点进一步向游戏逻辑层定位,定位到游戏逻辑层的对应代码,如下图:
在这里插入图片描述
上述是一个拒绝协议的逻辑函数,我们可以远程调用这个函数,并填写对应的玩家id,进行多次调用,因为此时游戏执行还未到组包函数,故调用对应函数会按照游戏自身逻辑组包,可绕过大多数协议重放的检测。

综上,可简单的将弹框干扰类风险的漏洞挖掘方法总结如下
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/780795.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++项目——集群聊天服务器项目(六)MySQL模块

Hello,大家好啊,最近比较忙,没来得及更新项目,实在抱歉~今天就恢复更新拉~ 在验证完网络模块与业务模块代码可以正常使用后,需完成的操作是与底层数据库进行交互,为实现各类用户查询、增删业务奠定良好的基…

【群晖】白群晖如何公网访问

【群晖】白群晖如何公网访问 ——> 点击查看原文 在使用默认配置搭建好的群晖NAS后,我们可以通过内网访问所有的服务。但是,当我们出差或者不在家的时候也想要使用应该怎么办呢? 目前白群提供了两种比较快捷的方式,一种是直接注…

【Python系列】合并配置文件的最佳实践

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

python实现两个Excel表格数据对比、补充、交叉验证

业务背景 业务中需要用到类似企查查一类的数据平台进行数据导出,但企查查数据不一定精准,所以想采用另一个官方数据平台进行数据对比核验,企查查数据缺少的则补充,数据一致的保留企查查数据,不一致的进行颜色标注。 …

脱壳之常用的加固样本特征

梆梆加固样本特征 清单文件入口 android:name“com.SecShell.SecShell.ApplicationWrapper” 特征 免费版 meta-data meta-data总结 assets/secData0.jar lib/armeabi/libSecShell.so lib/armeabi/libSecShell-x86.so 梆梆企业版 assets/classes0.jar lib/armeabi-v7a/libD…

第一次运行 Python 项目,使用 python-pptx 提取 ppt 中的文字和图片

人工智能时代,最需要学习的编程语言是:python 。笔者是个 python 小白,昨天花了两个小时,第一次成功运行起来 python 项目 。 项目是 powerpoint-extractor ,可以将 ppt 文件中的图片提取出来,并输出到固定…

Windows安装tomcat,以服务的方式管理,如何设置虚拟内存

之前工作中,部署tomcat都是使用Linux服务器,最近遇到个客户,提供的服务器是Windows server,并且需要通过服务的方式管理tomcat;以自己多年的码农经验,感觉应该没有问题,结果啪啪打脸了&#xf…

双向BFS

P1032 [NOIP2002 提高组] 字串变换 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 方法学自于B19 双向BFS 字串变换_哔哩哔哩_bilibili #include<iostream> #include<algorithm> #include<cstdio> #include<queue> #include<map> using namesp…

Adaboost集成学习 | Matlab实现基于BiLSTM-Adaboost双向长短期记忆神经网络结合Adaboost集成学习时间序列预测(股票价格预测)

目录 效果一览基本介绍模型设计程序设计参考资料效果一览 基本介绍 Matlab实现基于BiLSTM-Adaboost双向长短期记忆神经网络结合Adaboost集成学习时间序列预测(股票价格预测) 模型设计 股票价格预测是一个具有挑战性的时间序列预测问题,可以使用深度学习模型如双向长短期记忆…

python爬虫之selenium4使用(万字讲解)

文章目录 一、前言二、selenium的介绍1、优点&#xff1a;2、缺点&#xff1a; 三、selenium环境搭建1、安装python模块2、selenium4新特性3、安装驱动WebDriver驱动选择驱动安装和测试 基础操作1、属性和方法2、单个元素定位通过id定位通过class_name定位一个元素通过xpath定位…

【OJ】动归练习五之子组串

个人主页 &#xff1a; zxctscl 如有转载请先通知 题目 1. 53. 最大子数组和1.1 分析1.2 代码 2. 918. 环形子数组的最大和2.1 分析2.2 代码 3. 152. 乘积最大子数组3.1 分析3.2 代码 4. 1567. 乘积为正数的最长子数组长度4.1 分析4.2 代码 1. 53. 最大子数组和 1.1 分析 一、…

密码学基础-对称密码/公钥密码/混合密码系统 详解

密码学基础-对称密码/公钥密码 加解密说明1.加密解密必要因素加密安全性说明 什么是对称密码图示说明对称密码详解什么是DES?举例说明 什么是3DES什么是AES? 公钥密码什么是RSA? 对称密钥和公钥密码优缺点对比对称密码对称密码算法总结对称密码存在的问题? 公钥密码公钥密码…

npm ERR! errno CERT_HAS_EXPIRED

1 问题描述 使用npm命令安装相关依赖报错&#xff1a;npm ERR! code CERT_HAS_EXPIRED npm ERR! errno CERT_HAS_EXPIRED npm ERR! request to https://registry.npm.taobao.org/vue%2fcli failed, reason: certificate has expired报错示例图如下所示&#xff1a; 2原因分析…

Spring Boot 整合分布式搜索引擎 Elastic Search 实现 自动补全功能

文章目录 ⛄引言一、分词器⛅拼音分词器⚡自定义分词器 二、自动补全查询三、自动补全⌚业务需求⏰实现酒店搜索自动补全 四、效果图⛵小结 ⛄引言 本文参考黑马 分布式Elastic search Elasticsearch是一款非常强大的开源搜索引擎&#xff0c;具备非常多强大功能&#xff0c;…

谈一谈BEV和Transformer在自动驾驶中的应用

谈一谈BEV和Transformer在自动驾驶中的应用 BEV和Transformer都这么火&#xff0c;这次就聊一聊。 结尾有资料连接 一 BEV有什么用 首先&#xff0c;鸟瞰图并不能带来新的功能&#xff0c;对规控也没有什么额外的好处。 从鸟瞰图这个名词就可以看出来&#xff0c;本来摄像头…

阿里云Salesforce CRM功能差异列表 - Winter‘24

阉割版的阿里云Salesforce由于技术和监管等因素与国际版的Salesforce差距很大&#xff01; 一、Winter‘ 24版差异概况&#xff1a; 1.1. 主要版本&#xff1a; 阿里云上的 Salesforce 提供两个版本&#xff0c;用于生产用途的 CN 版本&#xff08;CN Edition&#xff09;和用…

day4 linux上部署第一个nest项目(java转ts全栈/3R教室)

背景&#xff1a;上一篇吧nest-vben-admin项目&#xff0c;再开发环境上跑通了&#xff0c;并且build出来了dist文件&#xff0c;接下来再部署到linux试试吧 dist文件夹是干嘛的&#xff1f; 一个pnpn install 直接生成了两个dist文件夹&#xff0c;前端admin项目一个&#xf…

Jenkins磁盘空间批量清理脚本

一、简介 Jenkins如果没有设置保留构建历史数&#xff0c;磁盘会随着使用次数增加而越来越满&#xff0c;于是需要批量清理一下。 二、清理脚本 找到Script Console 输入脚本&#xff0c;并点击执行&#xff0c;需要注意期望删除的构建历史编号&#xff08;可以查看下面的效果…

14. Springboot集成RabbitMQ

目录 1、前言 2、什么是RabbitMQ 3、安装RabbitMQ 4、Springboot集成RabbitMQ 4.1、添加依赖 4.2、添加配置 4.3、添加controller&#xff0c;作为生产者 4.4、设置生产者消息确认CallBack 4.5、添加Consumer&#xff0c;作为消费者 4.6、启动程序&#xff0c;访问 1…

关键字:this总结

this关键字的使用1. 目前可能出现的问题&#xff1f;及解决方案&#xff1f;我们在声明一个属性对应的setXxx方法时&#xff0c;通过形参给对应的属性赋值。如果形参名和属性名同名了&#xff0c;那么该如何在方法内区分这两个变量呢&#xff1f;解决方案&#xff1a;使用this。…