挖逻辑漏洞不懂数据权限怎么赚大钱?

news2024/11/24 8:45:51

从开发的角度看权限漏洞的最后一篇了,也就是数据权限篇,虽然之前的都没什么人看,但想了想还是花时间写完了,也算有始有终吧。

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,但是怎么说呢,我更喜欢自动化,同样可以使用和测试功能权限一样的方法:

  1. 1. 建两个普通用户A和B。

  2. 2. 找到对应的鉴权方式,比如是使用cookie或者是某些请求头。

  3. 3. 开启bp插件,功能是替换指定的请求头,并重放我的所有请求。

  4. 4. 配置鉴权相关的请求头,将他们全部替换为用户B的。

  5. 5. 使用用户A登录并点一遍所有功能。

  6. 6. 过滤所有接口参数中带有id字样的重放请求,看是否有成功返回数据的,因为理论上应该全部失败,因为重放的接口是使用B的鉴权参数访问A的数据。如果有成功,则认为有越权的可能。

同样的,这里的BP插件是我自己写的。你也可以去github上搜索类似的插件,挺多插件是可以实现这个操作的。

0x01

虽然看起来好像挺简单的样子,但是不开玩笑的说,我80%以上的高危漏洞来源于它。我遇到的只要是这类越权,最低中危,最高严重。而且一但遇见了自增ID之类的可遍历数据权限越权,那几乎都是4位数以上(除了某些SRC)。所以了解一下它的产生原因及实现还是有必要的,你知道它怎么实现的,才知道如何更好的去挖掘。

关于权限相关的就结束了,如果大家后面对什么技术类的感兴趣,也可以留言,我每周最少都会更新一篇技术类文章。


黑客&网络安全如何学习

给大家分享我自己学习的一份全套的网络安全学习资料,希望对想学习 网络安全的小伙伴们有帮助!

零基础入门

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

【点击免费领取】CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》

1.学习路线图

在这里插入图片描述

攻击和防守要学的东西也不少,具体要学的东西我都写在了上面的路线图,如果你能学完它们,你去接私活完全没有问题。

2.视频教程

网上虽然也有很多的学习资源,但基本上都残缺不全的,这是我自己录的网安视频教程,上面路线图的每一个知识点,我都有配套的视频讲解。【点击领取视频教程】

在这里插入图片描述

技术文档也是我自己整理的,包括我参加大型网安行动、CTF和挖SRC漏洞的经验和技术要点,电子书也有200多本【点击领取技术文档】

在这里插入图片描述

(都打包成一块的了,不能一一展开,总共300多集)

3.技术文档和电子书

技术文档也是我自己整理的,包括我参加大型网安行动、CTF和挖SRC漏洞的经验和技术要点,电子书也有200多本【点击领取书籍】

在这里插入图片描述

4.工具包、面试题和源码

“工欲善其事必先利其器”我为大家总结出了最受欢迎的几十款款黑客工具。涉及范围主要集中在 信息收集、Android黑客工具、自动化工具、网络钓鱼等,感兴趣的同学不容错过。

在这里插入图片描述

最后就是我这几年整理的网安方面的面试题,如果你是要找网安方面的工作,它们绝对能帮你大忙。

这些题目都是大家在面试深信服、奇安信、腾讯或者其它大厂面试时经常遇到的,如果大家有好的题目或者好的见解欢迎分享。

参考解析:深信服官网、奇安信官网、Freebuf、csdn等

内容特点:条理清晰,含图像化表示更加易懂。

内容概要:包括 内网、操作系统、协议、渗透测试、安服、漏洞、注入、XSS、CSRF、SSRF、文件上传、文件下载、文件包含、XXE、逻辑漏洞、工具、SQLmap、NMAP、BP、MSF…

在这里插入图片描述

👋全套《黑客&网络安全入门&进阶学习资源包》👇👇👇

这份完整版的学习资料已经上传CSDN,也可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

img

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1888709.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【实战场景】记一次UAT jvm故障排查经历

【实战场景】记一次UAT jvm故障排查经历 开篇词:干货篇:1.查看系统资源使用情况2.将十进制进程号转成十六进制3.使用jstack工具监视进程的垃圾回收情况4.输出指定线程的堆内存信息5.观察日志6.本地环境复现 总结篇:我是杰叔叔,一名…

20_系统测试与维护

目录 测试基础知识 测试原则 动态测试 静态测试 测试策略 测试阶段 测试用例设计 黑盒测试用例设计 白盒测试用例设计 McCabe度量法 鲁棒性测试 缺陷探测率(Defect Detection Percentage,DDP) 调试 系统维护基础 系统转换 系统维护指标 软件容错技术 嵌入式安…

Java语言开发的一套智慧产科系统源码:产科专科电子病历系统源码

Java语言开发的一套智慧产科系统源码:产科专科电子病历系统源码 系统概述 电子病历系统是以住院病人为中心,面向医生以及护士为主的,涉及临床治疗、护理等业务的临床信息系统,以电子信息技术为手段,实时采集病人在整个…

设计模式-结构型-08-组合模式

文章目录 1、学校院系展示需求2、组合模式基本介绍3、组合模式示例3.1、 解决学校院系展示(透明模式1)3.2、高考的科目(透明模式2)3.3、高考的科目(安全组合模式) 4、JDK 源码分析5、注意事项和细节 1、学校…

33.哀家要长脑子了!

憋说了,感觉好不容易长出来的脑子又缩回去了。。。 1.539. 最小时间差 - 力扣(LeetCode) 把所有时间排好序,然后计算两两之间的分钟差就好,但是要注意加上最后一个和第一个的判断,因为这个时间是按字典序来…

python-切片、集合

序列是指:内容连续、有序,可使用下标索引的一类数据容器 序列的常用操作 - 切片 切片的语法 序列的常用操作 - 切片 注意切片的范围是左闭右开 为什么使用集合 集合的常用操作 - 修改 集合的常用操作 - 集合长度 集合常用功能总结 集合的特点

为RK3568或RK3288开发板创建交叉编译环境{采用amd64的ubuntu系统配置交叉编译arm64开发环境}(保姆级包括安装QT)超详细记录版

为RK3568或RK3288开发板创建交叉编译环境{采用amd64的ubuntu系统配置交叉编译arm64开发环境}【保姆级包括安装QT】超详细记录版 Chapter1 为RK3568或RK3288开发板创建交叉编译环境{采用amd64的ubuntu系统配置交叉编译arm64开发环境}(保姆级包括安装QT)超详细记录版一. 安装QT程…

严防数据泄露:风险评估来预警,自查自纠防患未然!

近年来,随着数字化和网络化的快速发展,数据泄露事件呈现高发态势。网络攻击者利用复杂的攻击手段和技术,不断寻找和利用系统中的漏洞,以窃取或破坏数据,对企业声誉、客户信任以及经济利益造成巨大影响。 一、数据泄露的…

提升船舶轨迹查询效率

文章目录 引言I 优化思路1.1 表结构设计1.2 解析请求参数,定位到对应的表格进行查询1.3 mybatis查询1.4 效果II 工具方法2.1 日期处理2.2 spring开启debug日志引言 需求: 查询船舶轨迹 I 优化思路 1.1 表结构设计 按天存储轨迹数据,本文是一个月存储在6在表中,即:01,06…

Windows Hello | 看起来您已经在另一个帐户上设置了 Windows Hello。

问题: 换了新电脑之后一直设置不了Window Hello,报错是 "it looks like youve already setup Windows Hello on another account."。 >>重复set up不行。 >>从旧电脑移除了Windows Hello设置也不行。 >>确认过我的Local…

自闭症学生的刻板行为表现与教育干预策略

在自闭症学校的日常教学中,我深刻体会到刻板行为是许多学生常见且显著的特征之一。这些行为不仅影响学生的学习效果,也是他们与外界沟通互动的一大障碍。 刻板行为首先体现在动作上,学生们可能会反复进行某些无意义的动作,如摇晃身…

如何实现在短信链接中直接打开微信小程序

你是否有过这样的体验,收到一条短信,里面有一个链接,点击后就直接打开了微信,并且进入了一个小程序。这种神奇的功能是如何实现的呢?本文将为你揭晓答案。 利用微信URL Link 接口生成链接 要实现短信中的链接直接打开…

分位数回归模型及 Stata 具体操作步骤

目录 一、引言 二、理论原理 三、数据 四、Stata 程序代码及解释 五、代码运行结果及分析 一、引言 分位数回归作为一种强大的统计分析方法,能够更全面地揭示自变量与因变量在不同分位数水平上的关系。与传统回归仅关注均值不同,分位数回归有助于我们…

function-calling初体验

课程地址:https://learn.deeplearning.ai/courses/function-calling-and-data-extraction-with-llms/lesson/1/introduction github notebook地址:https://github.com/kingglory/LLMs-function-calling/tree/main Function-Calling 介绍 函数调用(Funct…

GAMES104:04游戏引擎中的渲染系统1:游戏渲染基础-学习笔记

文章目录 概览:游戏引擎中的渲染系统四个课时概览 一,渲染管线流程二,了解GPUSIMD 和 SIMTGPU 架构CPU到GPU的数据传输GPU性能限制 三,可见性Renderable可渲染对象提高渲染效率Visibility Culling 可见性裁剪 四,纹理压…

格式化选NTFS还是exFAT 格式化NTFS后Mac不能用怎么办 移动硬盘格式化ntfs和exfat的区别

面对硬盘、U盘或移动硬盘的格式化决策,NTFS与exFAT作为主流的文件系统,用户在选择时可以根据它们的不同特点来选择适用场景。下面我们来看看格式化选NTFS还是exFAT,格式化NTFS后Mac不能用怎么办的相关内容。 一、格式化选NTFS还是exFAT 在数…

网络基础:EIGRP

EIGRP(Enhanced Interior Gateway Routing Protocol)是由思科开发的一种高级距离矢量路由协议,结合了距离矢量和链路状态路由协议的优点;EIGRP具有快速收敛、高效带宽利用、负载均衡等特点,适用于各种规模的网络。EIGR…

面试题springboot面试

文章目录 Spring的依赖注入构造器注入stetter注入属性注入 springboot的优势第一开箱即用约定大于配置内嵌tomcat服务器 javaweb的三大组件springboot的自动配置原理SpringIoc的实现机制springmvcspring如何简化开发 Spring的依赖注入 构造器注入 stetter注入 属性注入 使用…

python小练习04

三国演义词频统计与词云图绘制 import jieba import wordcloud def analysis():txt open("三国演义.txt",r,encodingutf-8).read()words jieba.lcut(txt)#精确模式counts {}for word in words:if len(word) 1:continueelif word "诸葛亮" or word &q…

环保管理新篇章:智慧环保引领制造业走向绿色未来

环保领域作为当代社会焦点之一,其重要性不言而喻,直接关系到人类生存环境的可持续发展,因此吸引了政府、企业及社会各界的深切关注。然而,在环保行业蓬勃发展的背后,亦浮现出一系列亟待解决的痛点:融资渠道…