webgoat-Broken Access ControlI 访问控制失效

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值。

 

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

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

相关文章

Camtasia2024破解版电脑屏幕录制剪辑软件

屏幕录制剪辑 TechSmith Camtasia for Mac v2021是 TechSmith 公司所开发出一款专业屏幕录像和编辑, Camtasia Studio2024版是由TechSmith公司官方进行汉化推出的最新版本,除2023版以下版本均没有官方汉化。 同时TechSmith公司打击第三方贩卖Camtasia Studio汉化的…

Android 双向滑动

GestureDetector //系统 GestureDetectorCompat //AndroidX 较旧机型有更好的支持 code package com.example.myapplication.viewimport android.animation.ObjectAnimator import android.content.Context import android.graphics.Canvas import android.graphics.Paint im…

K8s:部署 CNI 网络组件+k8s 多master集群部署+负载均衡及Dashboard k8s仪表盘图像化展示管理

目录 1 部署 CNI 网络组件 1.1 部署 flannel 1.2 部署 Calico 1.3 部署 CoreDNS 2 负载均衡部署 3 部署 Dashboard 1 部署 CNI 网络组件 1.1 部署 flannel K8S 中 Pod 网络通信: ●Pod 内容器与容器之间的通信 在同一个 Pod 内的容器(Pod 内的容…

《网络协议》01. 基本概念

title: 《网络协议》01. 基本概念 date: 2022-08-30 09:50:52 updated: 2023-11-05 15:28:52 categories: 学习记录:网络协议 excerpt: 互联网、网络互连模型(OSI,TCP/IP)、计算机通信基础、MAC 地址、ARP & ICMP、IP & 子…

以华为为例:GTM岗位主要是做什么的?如何做好GTM工作?

如何让产品上市以后卖得更好?这是一个系统工程。 许多公司在学习华为(尤其是做消费者业务,通俗地说就是2C业务的公司或产品),设立GTM相关的岗位。我们来看一下,GTM岗位主要做些什么,如何才能胜…

后端除了增删改查还有什么?

大家好,我是伍六七。 刚工作 3、5 年的 Java 程序猿们,在日常工作中开始得心应手,基本上没有什么问题能难倒我们。 这个时候,我们很容易陷入迷茫当中,不知道怎么继续提升自己?怎么才能进阶资深、专家、总…

关键字驱动自动化测试框架搭建详解

前言 那么这篇文章我们将了解关键字驱动测试又是如何驱动自动化测试完成整个测试过程的。关键字驱动框架是一种功能自动化测试框架,它也被称为表格驱动测试或者基于动作字的测试。关键字驱动的框架的基本工作是将测试用例分成四个不同的部分。首先是测试步骤&#…

vite和webpack的区别

Vite,一个基于浏览器原生 ES imports 的开发服务器。利用浏览器去解析 imports,在服务器端按需编译返回,完全跳过了打包这个概念,服务器随起随用。同时不仅有 Vue 文件支持,还搞定了热更新,而且热更新的速度…

dockerfile避坑笔记(VMWare下使用Ubuntu在Ubuntu20.04基础镜像下docker打包多个go项目)

一、docker简介 docker是一种方便跨平台迁移应用的程序,通过docker可以实现在同一类操作系统中,如Ubuntu和RedHat两个linux操作系统中,实现程序的跨平台部署。比如我在Ubuntu中打包了一个go项目的docker镜像(镜像为二进制文件&am…

pytorch直线拟合

目录 1、数据分析 2、pytorch直线拟合 1、数据分析 直线拟合的前提条件通常包括以下几点: 存在线性关系:这是进行直线拟合的基础,数据点之间应该存在一种线性关系,即数据的分布可以用直线来近似描述。这种线性关系可以是数据点…

Go Gin中间件

Gin是一个用Go语言编写的Web框架,它提供了一种简单的方式来创建HTTP路由和处理HTTP请求。中间件是Gin框架中的一个重要概念,它可以用来处理HTTP请求和响应,或者在处理请求之前和之后执行一些操作。 以下是关于Gin中间件开发的一些基本信息&am…

小程序https证书

小程序通常需要与服务器进行数据交换,包括用户登录信息、个人资料、支付信息等敏感数据。如果不使用HTTPS,这些数据将以明文的方式在网络上传输,容易被恶意攻击者截获和窃取。HTTPS通过数据加密来解决这个问题,确保数据在传输过程…

策略模式在数据接收和发送场景的应用

在本篇文章中,我们介绍了策略模式,并在数据接收和发送场景中使用了策略模式。 背景 在最近项目中,需要与外部系统进行数据交互,刚开始交互的系统较为单一,刚开始设计方案时打算使用了if else 进行判断: if(…

函数调用指令, 返回机制分析(x86_64)

预备 #include <stdio.h>int addDetail(int a, int b) {return a b; }int add(int a, int b) {int c;c addDetail(a, b);return c; }int main(int argc, char *argv[]) {int sum;sum add(3, 5);printf("sum %d\n", sum);return 0; }汇编 main add addDeta…

ZZ038 物联网应用与服务赛题第J套

2023年全国职业院校技能大赛 中职组 物联网应用与服务 任 务 书 &#xff08;J卷&#xff09; 赛位号&#xff1a;______________ 竞赛须知 一、注意事项 1.检查硬件设备、电脑设备是否正常。检查竞赛所需的各项设备、软件和竞赛材料等&#xff1b; 2.竞赛任务中所使用…

FreeRTOS_任务通知

目录 1. 任务通知简介 2. 发送任务通知 2.1 函数 xTaskNotify() 2.2 函数 xTaskNotifyFromISR() 2.3 函数 xTaskNotifyGive() 2.4 函数 vTaskNotifyGiveFromISR() 2.5 函数 xTaskNotifyAndQuery() 2.6 函数 xTaskNotifyAndQueryFromISR() 3. 任务通知通用发送函数 3.…

【NI-DAQmx入门】NI-DAQmx之C、C++、VB、VB.net与C#支持

DAQmx应用程序编程接口(API) DAQmx附带数据采集编程所需的API。DAQmx API只是一组库&#xff0c;其中包含关于如何执行所有数据采集操作的函数。这些API支持LabWindows/CVI、C、C、Visual Basic 6.0、VB.NET和C#。 DAQmx API随DAQmx驱动程序一起安装&#xff0c;包含以下参考…

Lambda 架构 vs Kappa 架构

大数据处理架构详解&#xff1a;Lambda架构、Kappa架构、流批一体、Dataflow模型、实时数仓 https://www.cnblogs.com/robots2/p/17769376.html 大数据架构设计&#xff08;四十五&#xff09; - 知乎 浅析Lambda架构 - 简书 Lambda 架构 vs Kappa 架构 Lambda架构和Kappa架…

基于 golang 从零到一实现时间轮算法 (二)

Go实现单机版时间轮 上一章介绍了时间轮的相关概念&#xff0c;接下来我们会使用 golang 标准库的定时器工具 time ticker 结合环状数组的设计思路&#xff0c;实现一个单机版的单级时间轮。 首先我们先运行一下下面的源码&#xff0c;看一下如何使用。 https://github.com/x…

【Python语言速回顾】——爬虫基础知识

目录 一、爬虫概述 1、准备工作 2、爬虫类型 3、爬虫原理 二、爬虫三大库 1、Requests库 2、BeautifulSoup库 3、Lxml库 一、爬虫概述 爬虫又称网络机器人&#xff0c;可以代替人工从互联网中采集、整理数据。常见的网络爬虫主要有百度公司的Baiduspider、360公司的36…