论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
应用中心
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
IT评测·应用市场-qidao123.com技术社区
»
论坛
›
数据库
›
分布式数据库
›
挖逻辑漏洞不懂数据权限怎么赚大钱?
挖逻辑漏洞不懂数据权限怎么赚大钱?
嚴華
论坛元老
|
2024-7-13 00:47:10
|
来自手机
|
显示全部楼层
|
阅读模式
楼主
主题
1731
|
帖子
1731
|
积分
5193
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
从
开发
的角度看权限漏洞的最后一篇了,也就是数据权限篇。
0x00
相比于之前的未授权《一文明白权限类漏洞产生的原因之未授权篇》与功能权限《权限类漏洞剖析——功能权限篇》,数据权限实现起来就贫苦了,也是最轻易出错的,因为数据权限的
通用实现很复杂
,它的场景太多了。
详细那里复杂我就不细说了,要否则几篇文章都写不完,反正就是它很难实现像功能权限那样的简单通用处理逻辑,以是很多
开发
是直接在接口内里去判断的,然而,做得越多,错得越多。
实现
照旧以之前的订单功能为例,如果我需要查询订单,那我肯定只能查询自己的,那意味着,我生存的订单信息内里,最少要有订单创建人这个属性,那实现一个查询订单列表大概是这样的:
#略过了功能权限校验
def order_list():
# 获取当前登录用户
user_info = get_current_user()
# 根据当前用户查询所有订单信息
return get_orders_by_user(user_info.id)
复制代码
好像也很简单哦?实际上也是,几乎不太大概出错,因为错误太显着了,就算
开发
实现错了,测试阶段也会被发现,不大概发布到线上的。我们实际在挖洞的时候,这种
列表也几乎没什么操作的空间
,最多看看是不是返回的数据是不是包含敏感信息了。
那如果是查询订单详情呢?大概会这样实现:
#略过了功能权限校验
def order_detail(order_id):
order_info = get_orders_by_id(order_id)
user_info = get_current_user()
# 这里要判断订单的用户ID是否和当前用户ID匹配
if order_info.user_id != user_info.id:
return 'no permission'
return order_info
复制代码
几乎
90%
的数据越权漏洞,都是因为在实现的时候没有背面那一步操作,也就是判断数据的用户归属信息。为什么他这么轻易出现?以我的经验来看,重要大概是:
1、
开发
没有安全思维,觉得既然列表只返回当前用户的订单了,那在查询详情的时候,肯定是列表中的数据,就没有必要再判断了。即只思量正常场景,没有思量异常场景。
2、疏忽了,这太常见了。因为像涉及到这种根据ID举行操作的接口,都需要举行对应的判断,查询判断了,删除呢?更新呢?如果没有对数据权限举行充分的计划,那就
肯定
会出现问题。
漏洞发现
那像这种漏洞又怎样去找呢?一个一个去找固然没有问题,看到参数中带有ID的就试一试改ID,但是怎么说呢,我更喜欢自动化,同样可以使用和测试功能权限一样的方法:
建两个普通用户A和B。
找到对应的鉴权方式,比如是使用cookie或者是某些哀求头。
开启bp插件,功能是更换指定的哀求头,并重放我的全部哀求。
配置鉴权相干的哀求头,将他们全部更换为用户B的。
使用用户A登录并点一遍全部功能。
过滤全部接口参数中带有id字样的重放哀求,看是否有成功返回数据的,因为理论上应该全部失败,因为重放的接口是使用B的鉴权参数访问A的数据。如果有成功,则以为有越权的大概。
同样的,这里的BP插件是我自己写的。你也可以去github上搜索类似的插件,挺多插件是可以实现这个操作的。
0x01
虽然看起来好像挺简单的样子,但是不开打趣的说,我80%以上的高危漏洞泉源于它。我碰到的只要是这类越权,最低中危,最高严重。而且一但遇见了自增ID之类的可遍历数据权限越权,那几乎都是4位数以上(除了某些SRC)。以是了解一下它的产生原因及实现照旧有必要的,你知道它怎么实现的,才知道怎样更好的去挖掘。
欢迎关注我的公众号“混入安全圈的步调猿”,更多原创文章第一时间推送!
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
嚴華
论坛元老
这个人很懒什么都没写!
楼主热帖
iOS全埋点解决方案-用户标识 ...
用uniapp实现微信小程序的电子签名效果 ...
【万能皆可链接】C++中的动态链接库编 ...
【云服务器】推荐阿贝云服务器,目前永 ...
【Selenium+Pytest+allure报告生成自动 ...
MySQL实战45讲 20
【Javaweb】Web工作原理、两种网页、两 ...
Qt-FFmpeg开发-打开本地摄像头(6) ...
Spring Boot 配置文件
Doris(一) -- 简介和安装
标签云
集成商
AI
运维
CIO
存储
服务器
登录参与点评抽奖加入IT实名职场社区
下次自动登录
忘记密码?点此找回!
登陆
新用户注册
用其它账号登录:
关闭
快速回复
返回顶部
返回列表