逻辑越权之水平垂直越权

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 |

相关推荐
sg_knight2 小时前
拥抱未来:ECMAScript Modules (ESM) 深度解析
开发语言·前端·javascript·vue·ecmascript·web·esm
冰敷逆向4 小时前
苏宁滑块VMP深入剖析(一):解混淆篇
javascript·爬虫·安全·web
石像鬼₧魂石6 小时前
内网渗透是网络安全渗透测试
安全·web安全
闲人编程6 小时前
健康检查与就绪探针
kubernetes·web·状态机·健康检查·codecapsule·存活探针·启动探针
Neolnfra8 小时前
渗透测试标准化流程
开发语言·安全·web安全·http·网络安全·https·系统安全
白帽子黑客罗哥13 小时前
零基础使用网络安全工具的方法
安全·web安全·网络安全·渗透测试·漏洞挖掘·工具
白帽子凯哥哥14 小时前
零基础转行网络安全需要多长时间?具体的学习路径是怎样的?
学习·安全·web安全
白帽子黑客杰哥15 小时前
零基础学习网络安全,如何安排每天的学习计划?需要重点攻克哪些核心技能点?
学习·安全·web安全·渗透测试·人才培养·网络安全培训