网络知识 娱乐 越权漏洞简介及靶场演示

越权漏洞简介及靶场演示

文章目录

  • 一、什么是越权?
    • (一)越权漏洞的概念
    • (二)越权漏洞的分类
    • (三)常见越权方法
    • (四)未授权访问
  • 二、越权漏洞测试过程
    • (一)越权漏洞的思路
    • (二)越权测试的过程
    • (三)常见平行越权
  • 三、靶场实操
    • (一)靶场综述
    • (二)靶场越权测试
    • (三)靶场未授权访问
  • 四、小结


一、什么是越权?

(一)越权漏洞的概念

信息安全行业关于权限有两个常见的概念,一个叫越权,一个叫提权。提权指的是低权限的用户通过技术手段提升到高权限的用户。(权限一般是指计算机权限,提权是指从用户权限提升到管理员权限)。越权一般是指低权限用户进行高权限的操作或平级操作,越权漏洞出现的地方一般以网页、app为主。
越权漏洞是一种很常见的逻辑安全漏洞。是由于服务器端对客户提出的数据操作请求过分信任,忽略了对该用户操作权限的判定,导致修改相关参数就可以拥有了其他账户的增、删、查、改功能,从而导致越权漏洞。
像越权漏洞这种逻辑安全漏洞是参加工作以后我们的制胜法宝。
像SQL注入、XSS、CSRF、文件上传这类漏洞用企业级工具(比如awvs、绿盟科技公司的极光软件)可以测出来,但是逻辑安全漏洞则需要手动才能测出来,因为代码本身没问题,而是程序设计思路有问题。

(二)越权漏洞的分类

越权操作类型:
横向越权操作(水平越权)和纵向越权(垂直越权)操作
水平越权是指相同权限下不同的用户互相影响。
垂直越权是指使用权限低的用户影响到权限较高的用户。
交叉越权是指既可以水平越权又可以垂直越权。基本上只要垂直越权能做,水平越权也能做。

(三)常见越权方法

  • 1.通过修改GET传参来越权
  • 2.修改POST传参进行越权
  • 3.修改cookie传参进行越权
    注意:但凡看到可能代表身份或者某些信息的传参,都可以去尝试修改看看有没有漏洞。

(四)未授权访问

还有一类叫做未授权访问,即不需要权限就能访问。严格意义上而言,这个不属于越权漏洞,但是在日常测试中常常会遇见。(比如只要输入正确的网址就可以直接访问,例如/admin默认是登录,登录后跳转到user.php,然后你直接访问user.php,发现你直接有后台权限)
网站中的未授权访问通过目录扫描往往就可以发现。


二、越权漏洞测试过程

挖越权漏洞的核心在于找传参、找功能点。当然,抓传参不一定非要在浏览器里面抓,也可以抓app或者应用程序的传参。

(一)越权漏洞的思路

水平越权测试方法主要就是:看能否通过A用户的操作影响到B用户
 
垂直越权的测试思路就是:看低权限用户能否使用高权限用户专属的功能
 
一般而言,低权限用户的漏洞比较难挖,高权限的用户相对好挖(高权限用户功能多,而功能越多越可能有漏洞)。

(二)越权测试的过程

登录A用户时,正常更改或者是查看A用户信息,然后抓取数据包,将传参ID修改为其他用户,如果成功查看或者修改了同权限其他用户的信息就属于水平越权测试。(如果可以影响到高权限用户就是垂直越权)
测试过程中的传参ID参数需要自己检测(常见:uid= id= user= 等)通常使用burp进行爆破传参(传参可能在GET、POST、COOKIE传参)

(三)常见平行越权

不需要输入原密码的修改密码、抓包改用户名或者用户id修改他人密码、修改资料的时候修改用户id、查看订单的时候,遍历订单id等。


三、靶场实操

(一)靶场综述

登陆封神台越权靶场,先看看靶场的页面有哪些功能,比如登陆和注册功能,没有验证码,那么要想到有没有可能爆破呢?可以尝试爆破一下。另外注册或者忘记密码的页面有没有XSS呢?可以试试看有没有弹窗。
我们想去做一个越权,那么我们先想办法取得一个普通权限用户,于是乎先注册,注册好后我就拥有了一个普通权限账户,也可以多注册几个。
注:在cookie中,可以通过把shenfen和admin都改成1从而能够进入后台管理的页面。
靶场还可以玩一波骚操作,就是禁用JS然后直接访问后台地址就可以实现未授权访问网站后台。为什么要禁用JS呢?先进入后台,然后复制后台地址,换个浏览器访问访问该后台地址,抓包,然后右键选择do intercept,选择response to this requests,然后发送到repeter中,在proxy中dianji forward,从第一行中可以看出返回的是200 ok。正常情况下访问网站后台应该是304强制跳转,阻止用户访问后台,这里的跳转依靠的是JS来强制跳转,那么只需要把JS禁用掉(在设置-内容-禁用JS里面去设置),就可以实现无任何权限进入网站后台。(实际上直接修改返回包,把JS弹窗的核心代码删掉也可以)
所以靶场存在的漏洞有:
1、注册页面存在XSS;
2、无验证码可爆破账号密码;
3、修改个人资料处存在水平越权修改资料;
4、修改cookie可实现垂直越权;
5、禁用JS可实现未授权访问。(这种方式对于asp的站点并不少见,但是php的站点相对较少)

(二)靶场越权测试

首先注册两个账号,分别为z1和z2。


然后登陆z1,修改数据,并抓包查看数据包的内容:

然后同样的,再登陆z2账号,修改资料并抓包如下:

对比两个数据包,可以看出,z1的userID=106,z2的userID=107,可以尝试修改这个参数看看是否存在水平权限。注意到后面还有个参数是admin=0和shenfen=2,猜想这,两个参数是代表该账号是否具有管理员权限,可以通过修改这两个参数去尝试垂直越权。
首先尝试水平越权:
登陆z1账号,然后把所有信息都改为z1,并抓包,修改userID为107,如下:

然后登陆z2账号,点击修改资料,如下:

看到已经成功通过修改z1的数据包,实现了修改z2账号的资料,说明此处存在水平越权。接着测试是否能将普通用户的权限提升为管理员权限,登陆z1账号,点击修改资料,然后抓包:

发现成功提升为管理员账号,可见这里存在垂直越权。
但是此时点击后台管理会提示:您不是管理员。
由此可以判断,刚才shenfen的参数是决定你是不是管理员,同时admin是验证你是不是管理员。如果采用抓包的方式来修改cookie,则每个包都要手动修改cookie,所以这里采用插件来修改可以做到一劳永逸:

然后点击后台管理:
在用户管理中找到flag:flag{yuequan_good!@}

(三)靶场未授权访问

刚才管理员账号登陆了后台管理的地址后,发现后台地址是:

为了避免cookie的影响,换一个浏览器,直接访问靶场后台管理的地址:

http://jemm8002.ia.aqlab.cn/d/info.asp

访问该地址后,会提示:请先登陆
盲猜是js代码在起作用,按f12,找到设置,直接禁用js试试:

接着重新访问该页面,即可成功登陆后台管理页面:


四、小结

本文介绍了越权漏洞的概念、分类及测试过程,并通过专门的越权靶场演示了水平越权、垂直越权及未授权访问漏洞的复现过程,希望能为由需要的人起到参考的作用。