用户
搜索
  • TA的每日心情
    无聊
    前天 10:43
  • 签到天数: 38 天

    连续签到: 3 天

    [LV.5]常住居民I

    实习版主

    Rank: 7Rank: 7Rank: 7

    10

    主题

    29

    帖子

    647

    魔法币
    收听
    0
    粉丝
    1
    注册时间
    2021-12-9
    发表于 2021-12-13 11:07:52 21288
    越权漏洞概述

    如果一个权限低的用户想去操作权限高的用户,操作还成功了,就叫越权操作。

    越权漏洞的形成原因是:后台使用了不合理的验证规则导致的。

    一般越权漏洞容易出现在可以动用权限的页面比如需要登录的页面:的地方,当用户对可以动用权限的页面内的信息进行操作时比如你是管理员,你要修改某个用户的数据,那就是在权限页面内),后台需要对当前用户的权限进行验证,看看这个用户是否有操作的权限,看其是否有操作的权限,从而给出响应,而如果验证的规则过于简单就会容易出现越权漏洞

    (比如你是普通用户,你想做管理员的事情,他会验证你是否为管理员,正常情况下应该会提示你的权限不足。如果它的规则过于简单,被绕过了,那么你一个低权限的普通用户也可以执行管理员用户的高权限)

    因此,开发人员在权限管理中应该遵守:

    1.使用最小权限原则对用户进行赋权

    (给普通用户的权限,能最小就最小)

    2.使用合理(严格)的权限校验规则

    (要把方方面面都概括住,避免出现细节上的漏洞,严格把控各方面)

    3.使用后台登录状态作为条件进行权限判断,别动不动就瞎用前端传进来的条件

    (后台这个页面是肉眼可见的也算前端,只有看不见的那些后台的php代码才算是后端,要用后端进行验证,别乱用前端,比如之前的文件上传漏洞前端验证)

    0x01 水平越权漏洞

    假设用户“赵红鹰”和用户“刀哥”属于同一权限等级的角色(都是普通用户),他们能查看自己的私人数据(比如自己的个人信息),但如果系统只验证了能访问数据的角色(比如刀哥看的数据是刀哥的,服务器只验证了他看的是自己的),而没有对数据做细分或校验,导致赵红鹰能访问到刀哥的数据(只验证了是刀哥看刀哥的数据,并没有仔细验证这个人是否是刀哥本人,导致赵红鹰以刀哥的名义看刀哥的数据时,能够成功看到刀哥的个人信息),那么赵红鹰访问刀哥数据的这种行为就叫做水平越权访问。

    我们打开pikachu靶场,找到越权漏洞这一模块开始练习

    1.png

    页面提示“Please Enter Your Information”请输入你的信息

    我们有两个可用账号

    账号1:zhaohongying 密码:zhaohongying

    账号2:daoge 密码daoge

    我们登录zhaohongying的账号

    发现页面有一个“查看个人信息”

    我们之前的概念说过了,每个普通用户能看到自己的 私人数据

    同等级越过查看就是水平越权

    个人信息是zhaohongying的私密数据,我们点开查看

    2.png

    发现页面显示的都是zhaohongying的个人信息

    姓名:zhaohongying

    性别:男

    手机:黑手

    住址:黑手

    邮箱:黑手

    登录后页面只有这一个按钮,进入的只有这一个界面

    3.png

    解析一下本关的源码,发现只验证是否登录,没有使用session来验证

    4.png

    而且本关考的是水平越权漏洞,我们就抓个人信息的包

    看看有没有什么信息收获

    打开kali,使用火狐浏览器+brupsuite进行抓包

    此处代理必须设置好,否则是抓不到包的

    5.png

    6.png

    抓到包之后要把包发到repeater模块

    7.png

    我们仔细看包,抓到了两个关键信息

    一个是GET后面,有个username=zhaohongying

    另外一个是cookie,但是本关我们是默认不知道对方的cookie

    所以肯定用不到cookie这个东西,我们尝试修改username=

    把数据修改成daoge,然后再点击发送,看响应包

    8.png
    9.png
    10.png

    发现我们刚刚还登录的zhaohongying

    通过修改请求包后访问的个人信息是daoge的数据

    这就是水平越权

    刀哥信息:

    姓名:daoge

    性别:男

    手机:fw刀

    住址:打火机也没了

    邮箱:扣600块钱

    11.png

    0x02 垂直越权漏洞

    需要注意以下两点:

    1.一般情况下要知道后台登录页面的地址(对方添加账号的链接地址)

    2.对方相关信息用户名,后台页面地址

    admin用户的权限高于普通用户,普通用户越权操作admin用户的权限的情况就是垂直越权

    这种漏洞局限性比较高,也比较少,比如有些网站,管理员的主页显示“修改头像”、“修改名称”、“后台登录”,而普通用户却只有“修改头像”,“修改名称”这两个选项

    查看本关,发现管理员和普通用户的页面有很大的区别

    本关只能用admin和pikachu两个账号,其他的登不上去

    这里是管理员用户显示的页面

    12.png

    这里是普通用户显示的页面,只有查看权限,而且没有添加用户的按钮

    13.png

    我们来分析一下源码

    首先是登录界面的,登录界面会根据用户权限决定用户登录后的页面

    14.png

    其次这个是管理员登录后的页面,也就是管理员页面的源码

    15.png

    这个是修改用户信息的页面的源码

    16.png

    这关有个局限,就是必须有管理员修改用户的页面地址

    我们先登录一下管理员账户,拿到这个页面并抓进行操作的请求包

    (必须要填信息再抓包,别像截图一样)

    17.png

    抓到了请求包,发现了一个cookie,还有username和password

    username+password的等于后面就是你们要添加的账号密码信息

    其他的后面是非必填的,所以这里就不浪费时间填写了

    18.png

    我们右键把它发送到repeater模块,然后先退出管理员账户

    现在我们尝试用send发送请求包,然后查看响应页面

    19.png

    brupsuite里面的页面显示的不正常,登录普通用户看看是否添加成功

    20.png

    并没有添加成功,因为前面解析过源码了

    修改用户这个页面只验证登录状态了

    我们刚刚把管理员用户退出了

    因为那样无论如何登录状态都是已退出

    所以我们是添加不了用户的

    接下来

    我们前面提到了,本页面只验证了用户的登录状态

    并没有验证用户的权限等级,也就是管理员和普通用户都能操作

    我们现在登录的是普通用户的账户

    按理说是没有修改权限的,但是我们能够越权操作

    只需要把刚刚管理员操作的请求包里面的cookie修改为我们的即可

    因为它不会验证我们的权限等级的大小

    开始操作

    我们点击拦截,准备抓包,抓的是我们普通用户的cookie

    在我们普通用户登录完成的页面,刷新一下

        21.png

    22.png

    复制我们普通用户的cookie,去repeater模块

    替换刚刚抓到的普通用户的cookie

    23.png

    替换完成后点击send进行发送请求包

    24.png

    发现我们发送之后显示的页面是正常的

    25.png

    马上刷新一下普通用户的页面,看看是否成功

    (记得要取消抓包,否则是会被拦截的)

    26.png

    出现这个就是已经成功了

    这就是垂直越权漏洞

    低权限用户来进行高权限用户的操作

    本节完毕


    发表于 2021-12-16 20:15:46
    感谢分享
    剑未佩妥出门已是江湖
    使用道具 举报 回复
    发表于 2021-12-17 17:24:53
    使用道具 举报 回复
    发新帖
    您需要登录后才可以回帖 登录 | 立即注册