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发现:这里多了个?username=kobe和靶场自身的提示lucy/123456,lili/123456,kobe/123456
尝试把kobe换成其中的这两个其中之一试试

发现实现了同阶级的水平越权,得到了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 |
