水平越权
靶场环境:Pikucha
修改username=lucy (lucy是与kobe同级别的用户)
成功进入Lucy的用户
垂直越权
登录管理员用户
能进行添加,删除,查看用户的操作
换普通用户登录
切换管理员用户进行添加用户操作,抓取数据包,利用此数据包
切换普通用户
找到cookie
把刚才的数据包进行修改,添加cooike
发送,成功添加用户
有几个问题:
- 你是怎么获取对用户操作的数据包
答:1. 盲猜 2.能下载到源码,进行分析
原理:
- 前端安全造成:界面
判断用户等级后,代码界面部分进行可选显示 - 后端安全造成:数据库
user表(管理员和普通用户同表)
id,username,password,usertype
1,admin,123456,1
2,liuyifei,11111,2
登录用户admin或liuyifei时,代码是如何验证这个级别?(usertype判断)
如果在访问数据包中有传输用户的编号、用户组编号或类型编号的时候,那么尝试对这个值进行修改,就是测试越权漏洞的基本
身份认证失效
靶场环境:墨者
登录用户,抓取数据包
抓到两个重要数据包
其中一个uid可以进行操作
另外一个的card_id也可以进行操作
card_id就是用户的id
以card_id为参数进行爆破
设置Payload
进行攻击
通过查看,马春生图片的Id来确认马春生的id
进而获取密码
成功!
burpsuite插件使用
拿墨者为例
就拿墨者靶场为例,选择payload
使用intrude模块获得的数据包发送到Authz
把原先抓取的数据包中的cookie复制
把cookie粘贴到Authz模块下
原理就是,利用一个用户登录的cookie去验证其他用户是否能登录
全选右键点击run
如果回显为绿色,表示存在越权漏洞!
拿pickchu为例
抓取kobe用户的数据包
在抓取Lucy用户的数据包
在抓取一个用户的数据包,都发送到Authz模块下,使用kobe用户的cookie,来测试这两个用户的登录
存在越权!
但如果来测试admin用户,抓取admin用户数据包
不能水平越权!
修复方案
- 前后端同时对用户输入信息进行校验,双重验证机制
- 调用功能前验证用户是否有权限调用相关功能
- 执行关键操作前必须验证用户身份,验证用户是否具备操作数据的权限
- 直接对象引用的加密资源ID,防止攻击者枚举ID,敏感数据特殊化处理
- 永远不要相信来自用户的输入,对于可控参数进行严格的检查与过滤