news 2026/5/1 8:53:59

逻辑越权之水平垂直越权

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
逻辑越权之水平垂直越权

1.水平越权
通过替换身份标识(如ID),使A账号访问或操作相同权限的B账号的数据。

2.逻辑越权
低权限账号发送高权限请求,从而执行高权限操作。

3.未授权访问
删除请求中的认证信息后,仍能访问或执行受限操作。

pikachu说的是:

如果使用A用户的权限去操作B用户的数据,A的权限小于B的权限,如果能够成功操作,则称之为越权操作。 越权漏洞形成的原因是后台使用了 不合理的权限校验规则导致的。

一般越权漏洞容易出现在权限页面(需要登录的页面)增、删、改、查的的地方,当用户对权限页面内的信息进行这些操作时,后台需要对 对当前用户的权限进行校验,看其是否具备操作的权限,从而给出响应,而如果校验的规则过于简单则容易出现越权漏洞。

因此,在在权限管理中应该遵守:
1.使用最小权限原则对用户进行赋权;
2.使用合理(严格)的权限校验规则;
3.使用后台登录态作为条件进行权限判断,别动不动就瞎用前端传进来的条件;

你可以通过“Over permission”对应的测试栏目,来进一步的了解该漏洞。

1.水平越权

测试账号:

lucy/123456,lili/123456,kobe/123456

使用其中一个登录,这里我用的老大kobe/123456

http://pikachu:8000/vul/overpermission/op1/op1_mem.php

进入后url:http://pikachu:8000/vul/overpermission/op1/op1_mem.php?username=kobe&submit=%E7%82%B9%E5%87%BB%E6%9F%A5%E7%9C%8B%E4%B8%AA%E4%BA%BA%E4%BF%A1%E6%81%AF

对比前面的url发现:这里多了个?username=kobe和靶场自身的提示lucy/123456,lili/123456,kobe/123456

尝试把kobe换成其中的这两个其中之一试试

http://pikachu:8000/vul/overpermission/op1/op1_mem.php?username=lili&submit=%E7%82%B9%E5%87%BB%E6%9F%A5%E7%9C%8B%E4%B8%AA%E4%BA%BA%E4%BF%A1%E6%81%AF

发现实现了同阶级的水平越权,得到了lili的信息

2.垂直越权

原本的url:http://pikachu:8000/vul/overpermission/op2/op2_login.php

得到提示:这里有两个用户admin/123456,pikachu/000000,admin是超级boss

输入一个账号进去看到会员admin管理员的后台:

然后在输入pikachu的

分别转包两个人的数据包看看

发现这两个的区别是:

用户身份不同

第一条:username=admin&password=123456 - 尝试以管理员账户登录

第二条:username=pikachu&password=000000 - 尝试以普通用户账户登录

会话Cookie不同

第一条:PHPSESSID=28f3b0a4b4205e89cb5cec9a1a95ba4c

第二条:PHPSESSID=ff3c3da8ca09c32df1b50e745e445f54

然后我想用pikachu用户来添加数据从而实现越权的实现

尝试修改pikachu的cooike改成admin用户的cooike然后来看是否能够实现添加数据

先用admin用户来添加数据,抓个他的包

此时的PHPSESSID=0f29e2e392b295f5eb34ddb63d6a0ec5

然后把PHPSESSID=0f29e2e392b295f5eb34ddb63d6a0ec5换成普通用户的PHPSESSID=ff3c3da8ca09c32df1b50e745e445f54

发现了两条数据

说明成功

3.墨者水平-身份认证失效漏洞实战(漏洞成因)

使用bp的authz工具来实现判断是否存在越权漏洞然后再来找flag

1.这道题请获取钻石代理"马春生"的个人信息!已知系统测试账户(test/test)。

2.有越权这种漏洞(因为你测试用户想要去得到管理员用户的数据一般来说是不可能实现的)

输入前的url:http://119.3.165.128:43491/index.php?a=login

输入test用户的:http://119.3.165.128:43491/user_info.php

3.抓包看见:

Cookie: uid=test; mid=6927071f788211ee17211be0b89ef1e6; PHPSESSID=9dqovqtj6pc63h9i2rmcq3n4e3
Upgrade-Insecure-Requests: 1
Priority: u=0, i

user=test&password=test&login_submit=

Cookie: uid=test; mid=6927071f788211ee17211be0b89ef1e6; PHPSESSID=9dqovqtj6pc63h9i2rmcq3n4e3

这两个很有可能是关键,因为我输入的test,uid的值就是test,然后这个mid是啥,可以去修改试试

4.在url中输入不同的uid,mid,card_id

知道test的card_id然后查看

<img src="static/img/20128880316.jpg" width="50" height="50" title="钻石代理">

更改card_id值为20128880316发包得到账号和密码

解码得到账号和密码:

  • m233241
  • 9732343

尝试登录

得到key:

mozheb9af3a7dca5f24fc306d511de0e

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/1 6:14:09

git 本地分支上进行了合并操作但尚未推送到远程仓库,如何撤销?

如果你在本地分支上进行了合并操作但尚未推送到远程仓库&#xff0c;可以通过以下几种方式撤销合并&#xff1a; 1. 使用 git reset 撤销合并&#xff08;推荐&#xff09; 查看合并记录 git log --oneline -5找到合并前的 commit ID&#xff0c;然后重置 # 软重置&#xff08;…

作者头像 李华
网站建设 2026/5/1 7:31:46

23、Web与互联网服务器管理全解析

Web与互联网服务器管理全解析 1. sftp文件同步脚本 sftp程序允许通过管道或输入重定向的方式接收一系列命令。基于此特性的脚本主要用于构建上传更改文件的命令序列,最后将这些命令交给sftp程序执行。 如果使用的sftp版本在传输失败时不能正确向shell返回非零失败代码,可移…

作者头像 李华
网站建设 2026/4/22 8:16:50

Vue指令(4):v-model

v-model 作用 给表单元素使用&#xff0c;实现双向数据绑定&#xff0c;可以快速获取和设置表单元素内容 使用场景分析 上图第一张图为视图&#xff0c;第二张图为数据。两者实现双向数据绑定 &#xff08;1&#xff09;数据变化时&#xff0c;视图自动更新 &#xff08;2…

作者头像 李华