代码审计——垂直越权详解

简介: 代码审计——垂直越权详解

01 漏洞描述


垂直越权,也称权限提升,是一种“基于URL的访问控制”设计缺陷引起的漏洞。

由于Web应用程序没有做权限控制或者仅在菜单上做了权限控制,导致的恶意用户只要猜测其他管理页面的URL,就可以访问或控制其他角色拥有的数据或页面,达到权限提升目的。

image.png



02 审计要点



垂直越权漏洞发生的根本原因是系统没有设置完善的权限控制机制,因此审计的重点在于功能点是否设置了权限控制机制。


03 漏洞特征

垂直越权是一种URL的访问控制设计缺陷引起的漏洞,由于未对URL设定严格的用户访问控制策略,导致普通用户也可以通过发送请求的方式访问本应仅高权限用户才可访问的页面。

Java

@RequestMapping(value = "delete")
public String delete(HttpServletRequest request, @RequestParam Long id)
            throws Exception {
   
   
        try {
   
   
            userManager.delete(id);
            request.setAttribute("msg", "删除用户成功");
        } catch (ServiceException e) {
   
   
            // logger.error(e.getMessage(), e);
            request.setAttribute("msg", "删除用户失败");
        }
        return list(request);

上述代码是一段管理员删除用户操作的代码,若在操作时未对访问请求者的权限做判断,那么攻击者就可以构造请求“http://xxx.xxx.xxx/user/delete?id=1”来做只有管理员才有权限干的事情。

04 漏洞案例

image.png

代码层面观察对功能的判断是否存在校验机制或安全框架,若未存在明显校验代码,则存在垂直越权风险。

以下为3例垂直越权的功能点示例:

案例1:

登录到超级管理员用户,执行添加用户的操作,并且对过程进行抓包

image.png

切换到普通的管理员用户,并没有添加用户的权限,将其cookie替换到先前抓取的添加用户请求的cookie

image.png

发现新建了一个相同的用户,此为垂直越权

image.png



案例2:

使用高权限用户访问,可以获取所有用户的信息的权限
image.png


切换到普通用户,并没有查询所有用户的权限,将其cookie替换到先前抓取的请求包

image.png

发现成功查询所有用户信息,此为垂直越权

image.png


案例3:

某站点后台仅使用js跳转来限制未授权的用户访问

image.png


去掉js可以成功访问后台,且可以进行操作

image.png



05 修复方案



建议进行关键业务的操作时,应校验用户的会话然后根据会话获取对应的字段进行业务操作,切记不可以不校验会话的情况下允许用户操作关键性业务功能。

目录
相关文章
|
Prometheus 监控 安全
SpringBoot Actuator未授权访问漏洞的解决方法
SpringBoot Actuator未授权访问漏洞的解决方法Actuator 是 SpringBoot 提供的用来对应用系统进行自省和监控的功能模块,借助于 Actuator 开发者可以很方便地对应用系统某些监控指标进行查看、统计等。
33529 0
|
Java 关系型数据库 MySQL
网络安全-JDBC反序列化漏洞与RCE
网络安全-JDBC反序列化漏洞与RCE
1563 0
|
安全 前端开发 JavaScript
28、XSS常见payload
28、XSS常见payload
1588 0
|
SQL 数据库
20、绕过去除and、or、union select、空格的sql注入
20、绕过去除and、or、union select、空格的sql注入
764 0
|
存储 SQL 安全
MySQL 安全加固配置(等保二级)
数据库安全是等保测评和网络安全中的重要的一项内容,本文介绍一些常见的加固配置。
5525 0
|
供应链 中间件
哥斯拉内存马/Suo5内存代理插件
哥斯拉内存马/Suo5内存代理插件
2618 0
|
安全 数据库
Elasticsearch未授权访问漏洞
  Elasticsearch服务普遍存在一个未授权访问的问题,攻击者通常可以请求一个开放9200或9300的服务器进行恶意攻击。 0x00 Elasticsearch 安装 前提,保证安装了JDK 1.
15210 1
|
存储 安全 前端开发
Web渗透-文件上传漏洞-上篇
文件上传漏洞常见于Web应用,因类型限制不严可致恶意文件执行。本文介绍前端检测、MIME类型、黑名单、.htaccess、空格、双写等多种绕过方式,并结合upload-labs靶场演示利用方法,提升安全防护认知。
3433 1
Web渗透-文件上传漏洞-上篇
|
Java API 数据安全/隐私保护
(工作经验)优雅实现接口权限校验控制:基于自定义注解、AOP与@ConditionalOnProperty配置开关的通用解决方案
(工作经验)优雅实现接口权限校验控制:基于自定义注解、AOP与@ConditionalOnProperty配置开关的通用解决方案
911 1
|
SQL Web App开发 安全
Discuz历史漏洞分析(一)
Discuz是非常受欢迎的论坛型CMS,但是近年来DZ也爆出了很多经典漏洞,以下分析了几个不同类型的DZ历史漏洞(SQL注入、XSS、任意文件删除、弱加密算法、任意代码执行、HTTP HOST攻击等),提高安全人员的安全意识。
Discuz历史漏洞分析(一)