首页 > 其他分享 >越权漏洞

越权漏洞

时间:2023-10-20 19:26:02浏览次数:22  
标签:username 登录 admin 用户 漏洞 权限 越权

权限绕过漏洞

权限绕过(也叫越权)漏洞是指攻击者通过利用系统或应用程序中的漏洞,绕过了正常的权限控制机制,获得了比他们应该具有的更高权限。

  • 可以通过越权漏洞访问他人信息或者操纵他人账号
  • 其中权限绕过又有水平越权和垂直越权两种

形成原因

形成的原因:主要是因为开发人员对数据的增、删、改、查时对客户端请求的数据过分相信而遗漏了权限的判定。

漏洞分类

  • 水平越权:相同级别(权限)的用户或者同一角色中不同的用户之间,可以越权访问、修改或者删除其他用户信息的非法操作。如果出现此漏洞,可能会造成大批量数据的泄露,严重的甚至会造成用户信息被恶意篡改。

  • 垂直越权:就是不同级别之间的用户或不同角色之间用户的越权,比如普通用户可以执行管理员才能执行的功能。

  • 水平越权和垂直越权的定义不一样,但漏洞原理是一样的,都是在判断权限时不严格导致存在绕过漏洞,这一类的绕过通常发生在cookie验证不严、简单判断用户提交的参数,归根结底,都是因为这些参数是在客户端提交,服务端未严格校验。

  • 举例:当前A用户查看自己详细订单的URL为 /1.php?ordered=111,当用户手动提交 /1.php?ordered=112 时,则可以看到订单为112的别人的订单情况.

pikachu靶场越权漏洞

概述

  • 如果使用A用户的权限去操作B用户的数据,A的权限小于B的权限,如果能够成功操作,则称之为越权操作。 越权漏洞形成的原因是后台使用了 不合理的权限校验规则导致的。
  • 一般越权漏洞容易出现在权限页面(需要登录的页面)增、删、改、查的的地方,当用户对权限页面内的信息进行这些操作时,后台需要对 对当前用户的权限进行校验,看其是否具备操作的权限,从而给出响应,而如果校验的规则过于简单则容易出现越权漏洞。
  • 因此,在在权限管理中应该遵守:
    • 1.使用最小权限原则对用户进行赋权;
    • 2.使用合理(严格)的权限校验规则;
    • 3.使用后台登录态作为条件进行权限判断,别动不动就瞎用前端传进来的条件;

水平越权

  1. 根据提示信息,登录 lucy 账号
  2. 查看个人信息

    发现查看个人信息是通过 get 方式传递 username 参数,那能不能修改 username 参数的值来查看别人的信息呢?
  3. 尝试修改 username 参数的值,将其修改为 lili

    如图,发现已经成功显示 lili 用户的信息,因为 lucylili 输入同一级别用户,所以存在水平越权漏洞。

部分关键代码

op1_mem.php

$link=connect();
// 判断是否登录,没有登录不能访问
if(!check_op_login($link)){
    header("location:op1_login.php");
}
$html='';
if(isset($_GET['submit']) && $_GET['username']!=null){
    //没有使用session来校验,而是使用的传进来的值,权限校验出现问题,这里应该跟登录态关系进行绑定
    $username=escape($link, $_GET['username']);
    $query="select * from member where username='$username'";
    $result=execute($link, $query);
    if(mysqli_num_rows($result)==1){
        $data=mysqli_fetch_assoc($result);
        $uname=$data['username'];
        $sex=$data['sex'];
        $phonenum=$data['phonenum'];
        $add=$data['address'];
        $email=$data['email'];

        $html.=<<<A

查找用户信息的时候传入的参数是直接从url中获取的,没有校验当前用户。

防御

既然没有检验,我们就给他添加一个简单的验证,在27行增加判断url传入的username和当前用户是否匹配,如果匹配则为$username赋值,若不匹配则不赋值。

 if($_SESSION['op']['username']==$_GET['username']){
        $username=escape($link,$_GET['username']);
    }


看看防御效果

  1. 登录 lucy 用户,并查看个人信息
  2. 修改url中usernmae参数的值为lili

    跳转到查看个人信息界面
  3. 点击查看个人信息

    发现查看的依然还是lucy用户的信息,防御成功。

垂直越权

  1. 点击提示,发现有两个用户,pikachu 用户为普通用户,admin 用户为超级用户
  2. 登录 pikachu 用户,发现只有查看权限
  3. 再登录 admin 用户

    发现可以查看、添加、删除
    查看功能的url如下:
    http://www.pikachu.test/vul/overpermission/op2/op2_admin.php
    
    添加用户功能的url如下:
    http://www.pikachu.test/vul/overpermission/op2/op2_admin_edit.php
    

    删除用户功能的url如下:
    http://www.pikachu.test/vul/overpermission/op2/op2_admin.php?id=25
    
  4. 再次登录pikachu用户
  5. 输入查看用户功能的url

    提示需要登录,说明此处不存在越权漏洞
  6. 输入添加用户的url

    发现可以进入,创建一个用户试试
  7. 登录admin用户查看是否创建成功

    发现创建成功,说明此处存在垂直越权漏洞
  8. 删除页面是每删除一个,url的id值就加一。
    http://www.pikachu.test/vul/overpermission/op2/op2_admin.php?id=25
    

    登录pikachu 用户,访问删除用户的链接,删除aaa 用户试试看,对应的id为25

    发现会跳转到登录页面,登录 admin 用户,看看 aaa 用户是否被删除成功

    发现并没有被删除,说明该功能点不存在越权漏洞。

以上,说明只有添加用户功能存在垂直越权。

使用burp进行尝试

  1. 使用burp抓取 admin 添加用户的数据包

    然后发送到重放模块
  2. 然后抓一下pikachu用户登录的数据包

    同样发送到重放模块
  3. admin 添加用户的URL以及请求正文复制到 pikachu 登录的数据包中(或者直接用 pikachu 登录数据包中的 Cookie 值替换admin 添加用户数据包中的 Cookie 值)

    然后发送数据包,出现 302 跳转,不用管
  4. 回到浏览器,登录 admin 用户,检查 bbb 用户是否添加成功

    发现 bbb 用户添加成功,说明存在垂直越权漏洞。

查看源码

先看没问题的删除操作 op2_admin.php

主要是23~26行,判断了用户是否登录,是否权限级别为1(超级boss),如果任意一条不满足,就跳转到登录页面。

再来看看有问题的op2_admin_edit.php

22~25行,这里只是验证了登录状态,并没有验证级别,所以存在越权问题。

防御

仿照删除操作的代码,增加对用户权限等级的判断$_SESSION['op2']['level']!=1

标签:username,登录,admin,用户,漏洞,权限,越权
From: https://www.cnblogs.com/mr-ryan/p/17777842.html

相关文章

  • web基础漏洞-xss手工测试与自动测试
    手工测试,一般是指结合浏览器和burp的重放进行。1、反射型xss手工测试1.1测试是否返回如果测试参数在响应的体部中并未返回,那么基本可以判断不存在反射型xss。问题1:测试参数在响应中固有如果测试参数除了包含返回之外,还存在固有。这样的话,直接根据测试参数是否在响应体部中......
  • web基础漏洞-xss
    1、介绍xss,crosssitescript跨站脚本攻击,是指攻击者构造payload,使其在用户的浏览器上解析为脚本执行,从而造成危害。脚本一般是指js,但广义上vbscript和actionscript(flash)等其它脚本可以造成xss。xss一般发生在浏览器,但广义上任何支持脚本解析的应用都有可能造成xss。危害是......
  • 常见的软件安全性缺陷和漏洞
    软件的安全有很多方面的内容,主要的安全问题是由软件本身的漏洞造成的,下面介绍常见的软件安全性缺陷和漏洞。1、缓冲区溢出缓冲区溢出已成为软件安全的头号公敌,许多实际中的安全问题都与它有关。造成缓冲区溢出问题通常有以下两种原因。1)设计空间的转换规则的校验问题即缺乏对......
  • 泛微E-Office协同管理系统存在任意文件读取漏洞CNVD-2022-07603
    漏洞描述泛微e-office是一款由泛微网络科技股份有限公司开发的办公自动化(OfficeAutomation,简称OA)系统。它是一种基于Web的协同办公平台,可以帮助企业实现电子化、自动化、智能化的办公环境。泛微e-officeofficeserver2.php文件存在任意文件读取漏洞,攻击者可利用该漏洞读取服务......
  • 泛微emessage管理界面存在任意文件读取漏洞2023
    漏洞简介泛微emessage管理界面存在任意文件读取漏洞隐患,攻击者可通过此漏洞获取敏感信息,为下一步攻击做准备。漏洞复现fofa语法:icon_hash="-1477694668"登录页面如下:POC:POST/HTTP/1.1Host:User-Agent:Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.......
  • 泛微E-Bridge saveYZJFile任意文件读取漏洞
    漏洞描述泛微云桥e-Bridge存在任意文件读取漏洞,攻击者成功利用该漏洞,可实现任意文件读取,获取敏感信息。漏洞复现fofa语法:app="泛微云桥e-Bridge"登录页面如下:windows系统POC:/wxjsapi/saveYZJFile?fileName=test&downloadUrl=file:///C://windows/win.ini&fileExt=txtLinux......
  • 泛微E-Office json_common.php文件存在sql注入漏洞
    漏洞简介泛微e-office为企业办公提供丰富应用,覆盖常见协作场景,开箱即用。满足人事、行政、财务、销售、运营、市场等不同部门协作需求,帮助组织高效人事管理。系统json_common.php文件存在SQL注入漏洞漏洞复现fofa语法:app="泛微-EOffice"登录页面如下:POC:POST/building/......
  • 用友畅捷通 畅捷CRM get_usedspace.php SQL注入漏洞
    漏洞简介畅捷CRMget_userspace.php文件中site_id参数存在SQL注入漏洞漏洞复现fofa语法:icon_hash="-1068428644"登录页面如下:POC:GET/WebSer~1/get_usedspace.php?site_id=-1159%20UNION%20ALL%20SELECT%20CONCAT(0x7178767671,0x5664726e476a637a565a50614d4c435745446a......
  • 用友时空KSOA dept.jsp SQL注入漏洞
    漏洞简介用友时空KSOA是建立在SOA理念指导下研发的新一代产品,是根据流通企业最前沿的I需求推出的统一的IT基础架构,它可以让流通企业各个时期建立的IT系统之间彼此轻松对话,帮助流通企业保护原有的IT投资,简化IT管理,提升竞争能力,确保企业整体的战略目标以及创新活动的实现。系统dep......
  • 用友GPR-U8 slbmbygr SQL注入漏洞
    漏洞简介用友GRP-U8是面向政府及行政事业单位的财政管理应用。北京用友政务软件有限公司GRP-U8SQL注入漏洞。漏洞复现fofa语法:app="用友-GRP-U8"登录页面如下:POC:/u8qx/slbmbygr.jsp?gsdm=1';WAITFORDELAY'0:0:5'--sqlmap梭哈nuclei批量yaml文件id:yonyou_GRPU8_slb......