权限漏洞 水平权限漏洞 垂直权限漏洞

水平权限漏洞是指Web应用程序接收到用户请求时,没有判断数据的所属人,或者在判断数据所属人时是从用户提交的参数中获取了userid,导致攻击者可以自行修改userid修改不属于自己的数据。

漏洞示例:

XXX/getAddress?id=1

如上,攻击者修改addressId即可得到他人的address信息。开发容易习惯性的在生成CRUD(增查改删)表单(或AJAX请求)的时候根据认证过的用户身份来找出其有权限的被操作对象的id来提供入口,然后让用户提交请求,并根据这个id来操作相关对象。在处理CRUD请求时,都天真地默认只有有权限的用户才知道这个入口,进而才能操作相关对象,因此就不再校验权限了。可悲剧的是大多数对象的ID都被设置为自增整型,所以攻击者只要对相关id加1、减1、直至遍历,就可以操作其他用户所关联的对象了。

修复方案:

1、最正规的方案:把权限的控制转移到数据接口层中,避免出现select/update/delete ... where addressID=#addressID#的SQL语句,使用select/update/delete... where addressID=#addressID# and ownerId=#userId#来代替,要求web层在调用数据接口层的接口时额外提供userid,而这个userid在web层看来通常只能通过seesion来取到,以防用户造假。但这个方案的缺陷在于实现起来要改动底层的设计,所以不适合作为修复方案,更适合作为在最开始设计时的统一控制方案。

2、最直接有效的修复方案:在web层的逻辑中做鉴权,检查提交CRUD请求的操作者(通过session或token等加密信息中得到,以防造假)与目标对象的权限所有者是否一致,如果不一致则阻断。这个方案实现成本低、能确保漏洞的修复质量,缺点是增加了一次查库操作。我之前一直用这种方案来对已发生的水平权限漏洞做紧急修复。

另外的方法:

1、可对ID加密

2、使用UUID

3、每一个信息增加一个发布人的字段,修改的人必须与发布的人为同一个人才可以访问

垂直权限漏洞是指Web应用没有做权限控制,或仅仅在菜单上做了权限控制,导致恶意用户只要猜到了其他页面的URL,就可以访问或控制其他角色拥有的数据或页面,达到权限提升的目的。

修复方案:

只需要对url资源进行权限验证即可。

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://www.cnblogs.com/captainbed

原文地址:https://www.cnblogs.com/swnchx/p/10241533.html

时间: 2024-10-16 21:51:08

权限漏洞 水平权限漏洞 垂直权限漏洞的相关文章

利用Vulnhub复现漏洞 - Couchdb 垂直权限绕过漏洞(CVE-2017-12635)

漏洞原理:Apache CouchDB是一个开源数据库,专注于易用性和成为"完全拥抱web的数据库".它是一个使用JSON作为存储格式,JavaScript作为查询语言,MapReduce和HTTP作为API的NoSQL数据库.应用广泛,如BBC用在其动态内容展示平台,Credit Suisse用在其内部的商品部门的市场框架,Meebo,用在其社交平台(web和应用程序). 在2017年11月15日,CVE-2017-12635和CVE-2017-12636披露,CVE-2017-12

Couchdb垂直权限绕过到命令执行

0x00couchdb简介 Apache CouchDB是一个开源数据库,专注于易用性和成为"完全拥抱web的数据库".它是一个使用JSON作为存储格式,JavaScript作为查询语言,MapReduce和HTTP作为API的NoSQL数据库.应用广泛. 0x01两个漏洞的关系及原理 CVE-2017-12635垂直越权: CVE-2017-12635是由于Erlang和JavaScript对JSON解析方式的不同,导致语句执行产生差异性导致的.这个漏洞可以让任意用户创建管理员,属于

Linux文件权限详解 文件和目录权限概述

Linux文件权限详解 文件和目录权限概述 在linux中的每一个文件或目录都包含有访问权限,这些访问权限决定了谁能访问和如何访问这些文件和目录. 通过设定权限可以从以下三种访问方式限制访问权限:只允许用户自己访问:允许一个预先指定的用户组中的用户访问:允许系统中的任何用户访问.同时,用户能够控制一个给定的文件或目录的访问程度.一个文件活目录可能有读.写及执行权限.当创建一个文件时,系统会自动地赋予文件所有者读和写的权限,这样可以允许所有者能够显示文件内容和修改文件.文件所有者可以将这些权限改变

网站漏洞修复方案防止SQL注入×××漏洞

SQL注入漏洞在网站漏洞里面属于高危漏洞,排列在前三,受影响范围较广,像asp..net.PHP.java.等程序语言编写的代码,都存在着sql注入漏洞,那么如何检测网站存在sql注入漏洞? SQL注入漏洞测试方法 在程序代码里不管是get提交,post提交,cookies的方式,都可以有随意控制参数的一个参数值,通过使用sql注入工具,经典的sqlmap进行检测与漏洞利用,也可以使用一些国内的SQL代码注入工具,最简单的安全测试方法就是利用数据库的单引号, AND 1=1 AND 1=2等等的

怎么修复网站漏洞之metinfo远程SQL注入漏洞修补

2018年11月23日SINE网站安全检测平台,检测到MetInfo最新版本爆出高危漏洞,危害性较大,影响目前MetInfo 5.3版本到最新的 MetInfo 6.1.3版本,该网站漏洞产生的主要原因是MetInfo的上传代码里的参数值没有进行安全过滤,导致上传路径这里进行伪造路径,并可以插入恶意的代码,以及特殊字符进行上传图片到MetInfo的后台. MetInfo也叫米拓企业网站建站系统,是目前大多数企业网站使用的一个建站系统,整个系统采用的是php+mysql数据库作为基础架构,支持多功

数据库中的grant权限赋予和系统中的权限管理是两码事。

数据库中的grant权限赋予和系统中的权限管理是两码事.grant一般是赋给个人的,对全部或单个数据库的增删改查等权限,不多说.权限管理系统 在数据库中建表,存角色,权限,不同的菜单,在java层面上写代码控制的.用filter或if等都能控制.参考资料:grant:http://www.cnblogs.com/Richardzhu/p/3318595.htmlhttp://blog.csdn.net/leshami/article/details/5688875http://7567567.b

权限(一)--用户、权限组以及权限的分配

基本上所有的项目都会涉及到权限的控制与处理. 这里将讲讲自己对权限控制的理解以及处理方法,本篇主要介绍权限的分配. 一.权限组 权限组的意思就是一组权限的集合. 在论坛等一些系统中,我们常常能够看到一些角色:游客,会员,管理员,超级管理员.他们的权限以及能够查看的板块都是不一样的.这样的角色我们也可以称作权限组. 二.用户,权限组(角色),权限的关系. 首先,要明确目的:要给用户分配权限. 要实现什么样的功能呢? 1.一个用户可以同时拥有多个权限 2.一个权限可以被多个用户所拥有 这样看来,用户

漏洞大爆光:QQ漏洞、飞秋漏洞、360浏览器劫持…

?? 随着互联网应用的快速发展,信息安全已深入到诸多领域,前段时间发生的"Struts 2"漏洞及"心脏出血"漏洞影响了二亿中国网民的信息安全,原因是程序员缺少仔细的安全检查导致的.作为程序员,此时我们应该更加关注程序的安全性才对,但现实情况是程序员关注的依然是程序功能的实现,仍然忽视了程序的安全性,以至于很多程序都存在安全漏洞.下面是传智播客C/C++学院仅仅学习了5个月C/C++语言的学生发现的部分软件漏洞:(更多软件漏洞将会持续发布...) 1.飞秋远程溢出漏

权限设计(下) - 细说权限设计

什么是权限管理 一般来说,只要有用户参与的系统,那么都要有权限管理,尤其是一些后台的管理系统, 权限管理可以实现对用户访问系统的控制,按照安全规则或者相关策略的控制,可以使用户访问到只属于自己被授权的相关(比如菜单,或者页面资源) 权限管理包括用户认证和授权两模块 用户认证 用户认证,说白了就是登录的时候进行的验证,验证用户身份合法性. 最常见的用户身份验证的方式: 1.用户名 + 密码 2.手机号 + 验证码 3.证书验证 来看一下流程图: 用户授权 用户授权,浅白点讲就是权限访问控制,在用户