大连网站建设流程图/网络代运营推广
Insecure Direct Object References
直接对象引用
直接对象引用是指应用程序使用客户端提供的输入来访问数据和对象。
例子
使用 GET 方法的直接对象引用示例可能如下所示
https://some.company.tld/dor?id=12345
https://some.company.tld/images?img=12345
https://some.company.tld/dor/12345
其他方法
POST、PUT、DELETE 或其他方法也可能容易受到影响,主要仅在方法和潜在有效载荷上有所不同。
不安全的直接对象引用
当引用未得到正确处理时,这些被认为是不安全的,并允许授权绕过或披露可用于 执行用户不应能够执行或访问的操作或访问数据。 假设作为用户,您去查看您的个人资料,URL 如下所示:
https://some.company.tld/app/user/23398
…您可以在那里查看您的个人资料。如果导航到以下位置,会发生什么情况:
https://some.company.tld/app/user/23399…或在末尾使用另一个数字。如果您可以操作数字(用户 ID)并查看他人的配置文件,则对象引用是不安全的。 当然,这可以检查或扩展到 GET 方法之外,以查看数据,也可以操作数据。
更多好读物
在我们继续练习之前,这里有一些关于不安全的直接对象引用的好读物:
https://www.owasp.org/index.php/Testing_for_Insecure_Direct_Object_References_(OTG-AUTHZ-004)
https://www.owasp.org/index.php/Top_10-2017_A5-Broken_Access_Control
https://cheatsheetseries.owasp.org/cheatsheets/Insecure_Direct_Object_Reference_Prevention_Cheat_Sheet.html
https://www.owasp.org/index.php/Top_10_2013-A4-Insecure_Direct_Object_References
http://cwe.mitre.org/data/definitions/639.html
先进行身份验证,后滥用授权
许多访问控制问题容易受到经过身份验证但未经授权的用户的攻击
0x02
直接使用tom cat登录
0x03
页面上没显示的属性是role和userid
0x04
填写为WebGoat/IDOR/profile/2342384 提交,意思是直接使用userid就可以查询该id的信息。
如果知道了其他用户的id,那就也可以查询信息了。
在restful风格中,提供使用同样的url,不同的方法来进行处理,可以利用这样的模式,比如修改方法,传body,看能否对某些属性做出修改。
安全的對象引用
1、要有权限控制文档。
2、水平和垂直权限控制,通常我们使用角色来进行权限控制,但是同样角色的用户,也可能获取到其他用户的信息,这就是水平权限,也需要进行控制。
3、审计。权限控制规则应该包括哪些操作应该被记录下来,如超级用户或者管理员修改了其他人的信息,应该有日志记录。
另外试图破坏权限控制机制的操作也应该记录下来。
4、使用间接引用。这个的方法用的比较少,可以hash,编码或者其他的方法,使客户端看到的id不是真实的引用对象,
这会降低一些处理效率,但是也容易被猜测,暴力破解,或者反编译。
5、权限控制API 如 JSON Web Tokens (https://jwt.io和Secure Token Binding
Missing Function Level Access Control
缺少功能级别访问控制
访问控制(例如通过输出编码防止 XSS)可能很难维护。人们需要确保它在整个应用程序中正确执行,因此在每个方法/函数中。
IDOR 与缺少功能级访问控制
事实上,很多人(包括本课的作者)会将功能级访问控制和 IDOR 组合成“访问控制”。为了 OWASP Top 10 和这些教训,我们将做出区分。最明显的区别是 IDOR 更多的是“水平”或“横向”访问控制问题,而缺少功能级别访问控制会“暴露功能”。尽管此处的 IDOR 课程演示了如何公开功能(至少向具有相同角色的其他用户),但我们将研究可能公开功能的其他方式。
依靠默默无闻
人们可以依靠 HTML、CSS 或 JavaScript 来隐藏用户通常不访问的链接。过去曾出现过网络路由器尝试在 UI 中使用 javascript 保护(隐藏)管理功能的情况:Blogger: Time Warner Routers Still Hackable Despite Company Assurance | WIRED。
寻找隐藏物品
通常会有一些提示来查找 UI 未公开公开的功能......
-
HTML 或 JavaScript 注释
-
注释掉的元素
-
通过 CSS 控件/类隐藏的项
0x02
在页面源码找到两个没有用到的链接
0x03
本题需要利用上一题找到的信息。
根据上一题的信息收集,我们得知了/users与/config链接,但是我直接访问localhost/WebGoat/users
没有任何可用的信息,一开始以为是题目问题,知道看别人的解法,请求/users时把content-type改为application/json 得到hash值。
相关文章:

webgoat-Broken Access ControlI 访问控制失效
Insecure Direct Object References 直接对象引用 直接对象引用是指应用程序使用客户端提供的输入来访问数据和对象。 例子 使用 GET 方法的直接对象引用示例可能如下所示 https://some.company.tld/dor?id12345 https://some.company.tld/images?img12345 https://some.…...

Beaustiful Soup爬虫案例
文章目录 1 第三方库2 爬取2.1 初始化函数2.2 结束时关闭数据库2.3 生成header2.4 获取请求body2.5 解析异步json数据2.6 使用BS4的find方法解析2.7 写入口函数2.8 调用 3 完整代码 1 第三方库 获取随机UA pip install fake-useragent连接数据库 $ pip3 install PyMySQL发起…...

【Redis】Redis与SSM整合Redis注解式缓存Redis解决缓存问题
一,Redis与ssm整合 1.1 pom.xml配置 在pom.xml中配置相关的redis文件 redis文件: <redis.version>2.9.0</redis.version> <redis.spring.version>1.7.1.RELEASE</redis.spring.version><dependency><groupId>red…...

谈一谈SQLite、MySQL、PostgreSQL三大数据库
每一份付出,必将有一份收货,就像这个小小的果实,时间到了,也就会开花结果… 三大数据库概述 SQLite、MySQL 和 PostgreSQL 都是流行的关系型数据库管理系统(RDBMS),但它们在功能、适用场景和性…...

【微软技术栈】C#.NET 中的本地化
本文内容 资源文件注册本地化服务使用 IStringLocalizer<T> 和 IStringLocalizerFactory将其放在一起 本地化是针对应用支持的每个区域性,将应用资源转换为本地化版本的过程。 只有在完成本地化评审步骤,以验证全球化应用是否做好本地化准备后&a…...

【qemu逃逸】华为云2021-qemu_zzz
前言 虚拟机用户名:root 无密码 设备逆向 经过逆向分析,可得实例结构体大致结构如下: 其中 self 指向的是结构体本身,cpu_physical_memory_rw 就是这个函数的函数指针。arr 应该是 PCI 设备类结构体没啥用,就直接用…...

vue递归获取树形菜单
文章目录 前言什么是递归? 一、数据集二、 递归函数三、打印树形结构展示 前言 什么是递归? 程序调用自身的编程技巧称为递归( recursion)。 递归 粗略的理解为 循环 ,只不过 递归 是调用自身。 在实际使用中…...

[ubuntu]ubuntu22.04默认源和国内源
sudo vi /etc/apt/sources.list 请选择和系统对应的版本,查看系统版本命令: lsb_release -a Distributor ID: Ubuntu Description: Ubuntu 22.04 LTS Release: 22.04 Codename: jammy Ubuntu不同的版本配置的有…...

Map和ForEach的区别,For in和For of的区别
Map和ForEach的区别: 共同点:都可以遍历数组,this指向window,都不会改变原数组。 不同点:map返回一个数组,不会对空数组进行检测,如果是空数组map的话还是返回一个空数组,而空数组…...

json字符串属性名与实体类字段名转换
在项目开发过程中,会遇到实体类字段名与交互的json对象属性名不一致的情况,比如前段使用的是下划线方式定义,后端采用的是驼峰式定义,其他系统使用t表示一个时间戳,自己的系统使用timestamp定义。遇到这种情况…...

Vue Vuex模块化编码
正常写vuex的index的时候如果数据太多很麻烦,如有的模块是管理用户信息或修改课程等这两个是不同一个种类的,如果代码太多会造成混乱,这时候可以使用模块化管理 原始写法 如果功能模块太多很乱 import Vue from vue import Vuex from vuex …...

消费者忠诚度研究:群狼调研帮您制定忠诚客户计划
在当今竞争激烈的市场环境中,消费者忠诚度对于企业的成功至关重要。消费者忠诚度不仅关系到企业的市场份额和盈利能力,还直接影响着企业的品牌形象和声誉。群狼调研作为一家专业的市场研究机构,专注于消费者忠诚度研究,为企业提供…...

接口幂等性详解
1. 什么是幂等性 幂等性指的是对同一个操作的多次执行所产生的影响与一次执行的影响相同。无论操作执行多少次,系统状态都应该保持一致。 在计算机科学和网络领域中,幂等性通常用来描述服务或操作的特性。对于RESTful API或HTTP方法,一个幂…...

Java操作redis常见类型数据存储
一,Java连接Redis 1.1 导入依赖 打开IDEA在pom.xml导入依赖 注意:要在dependencies标签中导入 <dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>2.9.0</version> &…...

【深度学习】pytorch——Autograd
笔记为自我总结整理的学习笔记,若有错误欢迎指出哟~ 深度学习专栏链接: http://t.csdnimg.cn/dscW7 pytorch——Autograd Autograd简介requires_grad计算图没有梯度追踪的张量ensor.data 、tensor.detach()非叶子节点的梯度计算图特点总结 利用Autograd实…...

【ARM 安全系列介绍 1 -- 奇偶校验与海明码校验详细介绍】
文章目录 奇偶校验介绍奇偶校验 python 实现奇偶校验C代码实现 海明码详细介绍 奇偶校验介绍 奇偶校验是一种错误检测方法,广泛应用于计算机内部以及数据通信领域。其基本原理是为了使得一组数据(通常是一字节8位)中的“1”的个数为偶数或奇…...

分享34个发布商会PPT,总有一款适合您
分享34个发布商会PPT,总有一款适合您 链接:https://pan.baidu.com/s/1jP9toqTZONWeDIcxvw1wxg?pwd8888 提取码:8888 Python采集代码下载链接:采集代码.zip - 蓝奏云 学习知识费力气,收集整理更不易。知识付费甚…...

047_第三代软件开发-日志分离
第三代软件开发-日志分离 文章目录 第三代软件开发-日志分离项目介绍日志分离用法 关键字: Qt、 Qml、 log、 日志、 分离 项目介绍 欢迎来到我们的 QML & C 项目!这个项目结合了 QML(Qt Meta-Object Language)和 C 的强…...

ChinaSoft 论坛巡礼 | 系统与网络安全论坛
2023年CCF中国软件大会(CCF ChinaSoft 2023)由CCF主办,CCF系统软件专委会、形式化方法专委会、软件工程专委会以及复旦大学联合承办,将于2023年12月1-3日在上海国际会议中心举行。 本次大会主题是“智能化软件创新推动数字经济与社…...

Ubuntu Gitlab安javascript:void(‘numberedlist‘)装
原因: 代码越改越多,越难维护,开发代码和发布代码融为一体;2人以上开发,都会修改代码,修改次数一多,代码难以维护 其中:前往Gitlab官网:gitlab/gitlab-ce - Packages pa…...

11.4-GPT4AllTools版本已开始对小部分GPT3.5用户内测推送
OpenAI已经开始小规模推送GPT4 AllTools功能,部分GPT博主已经第一时间体验了此功能,此功能特色是整合目前的多模态功能以及文件上传和联网模块,无需切换,更要全面综合 可上传包括 PDF、数据文件在内的任意文档,并进行分…...

竞赛选题 深度学习手势检测与识别算法 - opencv python
文章目录 0 前言1 实现效果2 技术原理2.1 手部检测2.1.1 基于肤色空间的手势检测方法2.1.2 基于运动的手势检测方法2.1.3 基于边缘的手势检测方法2.1.4 基于模板的手势检测方法2.1.5 基于机器学习的手势检测方法 3 手部识别3.1 SSD网络3.2 数据集3.3 最终改进的网络结构 4 最后…...

语言模型AI——聊聊GPT使用情形与影响
GPT的出现象征着人工智能自然语言处理技术的一次巨大飞跃。从编程助手到写作利器,它的身影在各个行业中越来越常见。百度【文心一言】、CSDN【C知道】等基于GPT的产品相继推出,让我们看到了其广泛的应用前景。然而,随着GPT的普及,…...

浅谈事件冒泡和事件捕获
事件冒泡和事件捕获分别由微软和网景公司提出,这两个概念都是为了解决页面中事件流(事件发生顺序)的问题。 <div id"div1"><div id"div2"><div id"div3">click</div></div> <…...

CSS 背景、文本、字体
CSS背景: CSS背景属性用于定义HTML元素的背景。CSS属性定义背景效果:background-color;background-image;background-repeat;background-attachment;background-position。 background-color属性定义元素…...

爬取Elastic Stack采集的Nginx内容
以下是一个简单的Go语言爬虫程序,用于爬取Elastic Stack采集的Nginx内容。请注意,这只是一个基本的示例,实际使用时可能需要根据具体情况进行修改和扩展。 package mainimport ("fmt""net/http""io/ioutil" )…...

python 机器学习 常用函数
一 np.random.randint "randint" 是 "random integer" 的缩写,表示生成随机整数。 np.random.randint 是 NumPy 库中的一个函数,用于生成随机整数。以下是该函数的一般语法: np.random.randint(low, high, size)其中…...

手写操作系统篇:环境配置
文章目录 前言C环境配置Rust环境配置Qemu安装 前言 这篇博客先配置好我们之后的开发环境,下载一些依赖的软件包 建议大家使用ubuntu操作系统 C环境配置 sudo apt-get update && sudo apt-get upgrade sudo apt-get install git wget build-essential gdb…...

地理信息系统原理-空间数据结构(7)
四叉树编码 1.四叉树编码定义 四叉树数据结构是一种对栅格数据的压缩编码方法,其基本思想是将一幅栅格数据层或图像等分为四部分,逐块检查其格网属性值(或灰度);如果某个子区的所有格网值都具有相同的值࿰…...

三国志14信息查询小程序(历史武将信息一览)制作更新过程03-主要页面的设计
1,小程序的默认显示 分为三部分,头部的标题、中间的内容区和底部的标签栏。点击标签可以切换不同页面,这是在app.json文件中配置的。代码如下: //所有用到的页面都需要在 pages 数组中列出,否则小程序可能会出现错误或…...