漏洞都有哪些分类

IT知识
519
0
0
2023-05-21
标签   网络安全

漏洞分类的标准

3.1 . 漏洞危害分级标准 目前定义有五类危害等级,危害等级定义依据为: 3.1.1 . 紧急 可以直接被利用的漏洞,且利用难度较低。被攻击之后可能对网站或服务器的正常运行造成严重影响,或对用户财产及个人信息造成重大损失。 3.1.2 . 高危 被利用之后,造成的影响较大,但直接利用难度较高的漏洞。或本身无法直接攻击,但能为进一步攻击造成极大便利的漏洞。 3.1.3 . 中危 利用难度极高,或满足严格条件才能实现攻击的漏洞。或漏洞本身无法被直接攻击,但能为进一步攻击起较大帮助作用的漏洞。 3.1.4 . 低危 无法直接实现攻击,但提供的信息可能让攻击者更容易找到其他安全漏洞。 3.1.5 . 信息 本身对网站安全没有直接影响,提供的信息可能为攻击者提供少量帮助,或可用于其他手段的攻击,如社工等。

漏洞的分类

XSS漏洞的分类

XSS漏洞依照攻击利用手法的不同,有下面三种类型:

类型A,本地利用漏洞,这样的漏洞存在于页面中client脚本自身。其攻击步骤例如以下所看到的: Alice给Bob发送一个恶意构造了Web的URL。 Bob点击并查看了这个URL。 恶意页面中的JavaScript打开一个具有漏洞的HTML页面并将其安装在Bob电脑上。 具有漏洞的HTML页面包括了在Bob电脑本地域运行的JavaScript。 Alice的恶意脚本能够在Bob的电脑上运行Bob所持有的权限下的命令。

类型B,反射式漏洞,这样的漏洞和类型A有些类似,不同的是Webclient使用Server端脚本生成页面为用户提供数据时,假设未经验证的用户数据被包括在页面中而未经HTML实体编码,client代码便可以注入到动态页面中。其攻击步骤例如以下: Alice常常浏览某个站点,此站点为Bob所拥有。Bob的站点执行Alice使用username/password进行登录,并存储敏感信息(比方银行帐户信息)。

Charly发现Bob的网站包括反射性的XSS漏洞。 Charly编写一个利用漏洞的URL,并将其冒充为来自Bob的邮件发送给Alice。 Alice在登录到Bob的网站后,浏览Charly提供的URL。 嵌入到URL中的恶意脚本在Alice的浏览器中运行,就像它直接来自Bob的server一样。此脚本盗窃敏感信息(授权、信用卡、帐号信息等)然后在Alice全然不知情的情况下将这些信息发送到Charly的Web网站。

类型C,存储式漏洞,该类型是应用最为广泛并且有可能影响到Webserver自身安全的漏洞,骇客将攻击脚本上传到Webserver上,使得全部訪问该页面的用户都面临信息泄漏的可能,当中也包含了Webserver的管理员。其攻击步骤例如以下: Bob拥有一个Web网站,该网站同意用户公布信息/浏览已公布的信息。 Charly注意到Bob的网站具有类型C的XSS漏洞。 Charly公布一个热点信息,吸引其他用户纷纷阅读。 Bob或者是不论什么的其他人如Alice浏览该信息,其会话cookies或者其他信息将被Charly盗走。

类型A直接威胁用户个体,而类型B和类型C所威胁的对象都是企业级Web应用。

当前游戏漏洞方面还没有权威的定义和分类方法,不同的人可能会有不同的分类方式,比如有些人喜欢按游戏玩法模块来划分漏洞,把漏洞分为任务系统漏洞、战队系统漏洞、对战系统漏洞等等。游戏安全实现室定位还是希望走纯技术交流的专业路线。所以这里所说的分类方法主要是从技术角度来分析漏洞形成的原因,进行归纳总结出来的分类方法,仅供大家参考。

1.外挂功能漏洞

外挂功能漏洞主要是指对游戏核心玩法的游戏平衡会带来影响的漏洞。游戏开发初期由于选择的网络架构(网络同步方式)不合理,导致了部分关键逻辑被放在客户端处理,这种做法就会带来相应外挂风险。由于网络架构设计改动起来工作量大,一旦运营就很少在改动。所以外挂功能漏洞一般具有很难修复的特点,只能通过加强校验或者依赖游戏保护方案来进行运营对抗。

不同类型的游戏特点决定了对应的常见外挂功能漏洞也不同。在ACT游戏中,玩家必须操控游戏角色,根据周遭环境的变化,做出快速响应。由于ACT游戏非常注重手感和用户体验,操作指令发出后需要第一时间体现出来,这种高实时性要求导致了对服务端要求太高,所以很多游戏为了手感体验就把关键逻辑放到客户端来进行。这种处理方式决定了常见的ACT游戏外挂功能包括瞬移、全屏、无CD、无敌、秒怪等。在FPS中,其特点是能够进行远距离攻击,地图的空间范围大。由于地图场景复杂,移动逻辑放在服务端处理则要求服务端有全量的地图信息,要求相对较高,为节省服务端开销所以很多游戏吧坐标处理逻辑放到了客户端进行,所以常见的FPS类游戏会有:飞天、遁地、透视、无后坐力等功能。

2.服务端校验疏忽漏洞

服务端校验疏忽漏洞主要是指服务端能够获取到足够多的信息、理论上可以校验,但由于程序员开发过程中一时疏忽而忘记校验的逻辑BUG。这类漏洞一般对游戏产生较大影响、利用后能获取较多的虚拟财产收益。但修复也相对简单,开发商一旦发现理论上可以快速做出响应彻底修复漏洞。

服务器是整个游戏的大脑,负责大部分的游戏逻辑处理、响应和数据的存储等功能。例如在某个ACT游戏中,正常情况下玩家需要达到60级才能进入某个生化禁区的副本,通过挖掘发现,在一定的条件下,我们可以绕过这个级别限制,从而达到随意进入该高级副本。

3.兼容性漏洞

兼容性漏洞主要是指由于协议各字段边界值考虑不周全,程序在处理协议时导致崩溃的漏洞。兼容性漏洞一般会导致服务端崩溃,从而实现炸房、炸频道、炸服等类型的服务端拒绝服务;或者导致周围玩家崩溃或者掉线。这类漏洞从利用者角度来讲并没有带来太多收益,但是对开放商来讲却是致命的漏洞。在程序开发过程中,很多时候都只考虑了正常情况而忽略了特殊边界值。所以兼容性漏洞也是几乎每个游戏都会曾在的漏洞,这类漏洞需要在上线前进行大量的测试排查。

兼容性漏洞最典型的例子就是某ACT游戏外网曾经出现过的一个技能漏洞,在PK场外网作弊玩家无意间修改出了一个非法技能,该技能的技能等级为0。人类看待数值一般从1开始,而程序处理一般从0开始,获取技能属性的方式是从数组中获取,1级技能对应属性为数组下标为0。外挂构造出了0级技能(正常情况下不存在)所以程序没有校验直接访问了数组下标为-1的数组元素,下标越界从而导致程序处理过程中崩溃。外挂使用后的表现就是一旦使用这个畸形的技能,那么同PK场的其他玩家都会收到一个技能等级为0的技能数据包,处理过程就会导致同PK场的其他玩家客户端崩溃。

4、性能漏洞

性能漏洞是指由于某些操作对性能消耗比较大时,被恶意玩家利用来达到破坏游戏的目的。常见的性能漏洞一般会利用服务端瓶颈或者客户端瓶颈来达到目的。

服务端瓶颈主要是指服务端某些操作比较消耗性能,客户端大量发起该操作导致服务端处理不过来从而产生拒绝服务的效果。比如查看拍卖行操作可能会导致游戏服务端查询数据库等行为,如果玩家短时间内通过发送刷新拍卖行的协议就会导致服务端处理不过来,其他玩家在刷新拍卖行就无法响应,导致拍卖行功能无法使用。

客户端屏一个典型的例子就是某赛车游戏出现过的炸房外挂,不同赛车切换对客户端来讲也是一个性能消耗很大的行为。外挂通过快速切换赛车到服务端,服务会把该行为同步到周围其他玩家,其他玩家短时间内大量加载资源释放资源消耗大量CPU导致卡死。

上传漏洞分类

一、web容器解析漏洞

IIS解析漏洞(V6.0):

1、当建立*.asa 或*.asp的文件夹时,起目录下的任意文件IIS6.0都当做asp来解析,如下图:

在这里插入图片描述

2、当文件以*.asp;1.jpg命名时,IIS6.0同样会当做asp来解析,如下图:

在这里插入图片描述

WebDav漏洞

服务器开启WebDav扩展后,如果支持PUT、Move、Copy、Delete等方法,就可能存在安全隐患。测试步骤如下: 第一步,通过OPTIONS探测服务器支持的HTTP方法。

在这里插入图片描述

第二步,通过PUT方法上传脚本文件。

在这里插入图片描述

第三步,通过Move或Copy方法改名。

在这里插入图片描述

通过这三步,就可以获得webshell ,DELETE方法同理。

Apache解析漏洞

Apache在解析文件时有一个原则,当碰到不认识的扩展名时,会先前解析,直到碰到认识的扩展名为止;如存在文件为1.php.rar.xx.ko,Apache会首先解析扩展名ko,不认识后尝试解析xx

例子:存在1.php.rar内容如下

在这里插入图片描述

Apache解析后显示phpinfo内容:

在这里插入图片描述

PHP CGI解析漏洞:

访问http:www.xxx.com/1.jpg/1.php ,其中1.jpg为图片木马而1.php为不存在文件,却可以看到1.jpg按照PHP脚本来解析了

在这里插入图片描述

二、绕过上传漏洞

大体分为:中间人重命名、截断上传、修改MIME(Content-Type) 三、文件编辑器上传漏洞

大体思路:针对文件编辑器特有的缺陷,指定URL,通过拦截修改或构造HTML实现上传

例如 FCKeditor 2.4.2及以下版本可以构造以下html实现上传:

<html>
<head>
<title>FCKeditor poc </title>
</head>
<body>
<form action="http://www.XXX.com/FCKeditor/editor/filemanager/upload/php/upload.php?Type=Media" method="post" enctype="multipart/form-data">
<input type="file" name="NewFile"/>
<input type="submit" value="提交"/>
</form>
</body>
</html>