🗒️Broken Access Control-brokenaccesscontrol
2021-7-2
| 2023-4-12
0  |  0 分钟
type
status
date
slug
summary
tags
category
icon
password

Broken Access Control(越权访问)

Insecure Direct Object References(不安全的直接对象引用)

直接对象引用
直接对象引用是指应用程序使用客户端提供的输入来访问数据和对象。 例子
使用GET方法的直接对象引用的示例可能如下所示
POST、PUT、DELETE或其他方法也可能受到影响,主要只是方法和潜在负载不同。 不安全的直接对象引用
如果引用没有得到适当的处理,并且允许授权绕过或公开可能用于执行操作或访问用户不应该执行或访问的数据的私有数据,则认为这些数据是不安全的。假设作为一个用户,你去查看你的个人资料,URL看起来像这样:
... 你可以在那里查看你的资料。如果你导航到:
https://some.company.tld/app/user/23399 ,或者在最后用另一个数字。如果您可以操纵数字(用户id)并查看其他人的配置文件,那么对象引用是不安全的。当然,这可以在GET方法之外进行检查或扩展,以查看数据,还可以操作数据。
在2中使用tom cat进行登录,在3中进行抓包可以看到账户和密码等各种用户信息都暴露在请求中.
4.
notion image
抓包得知profile的路径为GET /WebGoat/IDOR/profile
经过尝试得知最终路径是WebGoat/IDOR/profile/2342384
5.要求获得其他用户数据
使用bp抓包,将路径中id部分进行暴力破解
notion image
经过几次范围尝试得到答案为2342388
查看Buffalo Bill的个人信息
notion image
将拦截到的请求进行更改
notion image
将GET请求更改为PUT请求
将Content-Type:改为application/json
编辑json内容
notion image

Missing Function Level Access Control(应用层访问控制缺失)

应用层访问控制缺失
访问控制,比如使用输出编码防止跨站,维护起来可能比较棘手。需要确保在整个应用程序中正确地执行它,因此在每个方法/函数中都是如此。
IDOR vs应用层访问控制缺失
事实上,许多人(包括本课的作者)会将功能级访问控制和IDOR组合成“访问控制”。为了OWASP Top 10和这些教训,我们将做出区分。最明显的区别是,IDOR更多的是一个“水平”或“横向”访问控制问题,而缺少功能级别的访问控制“暴露了功能”。尽管这里的IDOR课程演示了功能可能也会如何暴露(至少是对具有相同角色的另一个用户),但我们将研究功能可能暴露的其他方式。
‍ ‍ 依靠模糊性
可以依靠HTML、CSS或javascript来隐藏用户通常不访问的链接。在过去的情况下,网络路由器试图保护(隐藏)管理功能与javascript在UI: https://www.wired.com/2009/10/routers-still-vulnerable
寻找隐藏的物品
通常会有提示来找到UI没有公开公开的功能…
HTML或javascript注释
注释掉的元素
通过CSS控件/类隐藏的项
 
 
WebGoat靶场通关
  • 靶场
  • Authentication Bypasses-认证绕过Burp Suite的使用
    目录