网工干货知识

超全学习笔记
当前位置:首页 > 干货知识

损坏的访问控制系统

更新时间:2026年03月27日   作者:spoto   标签(Tag):

损坏的访问控制系统这是一种网络安全漏洞,当应用程序未能对用户的权限进行有效控制时就会引发这种漏洞。这样一来,攻击者就可以访问数据或执行超出其授权权限的操作。攻击者可以做到:

  • 查看或修改其他用户的账户信息。
  • 访问敏感数据(如个人详细信息或财务信息)。
  • 未经授权就执行管理级的操作。

示例:

  • 如果普通用户能够更改该URL的话……/user/profile/101 to /user/profile/102未经授权访问他人的个人资料,这表明存在“访问控制漏洞”。
  • 这被认为是最严重的网络漏洞之一,因为它可能导致数据泄露、权限提升,甚至导致整个账户的被劫持。
损坏的访问控制机制

访问控制中的漏洞

我们可以将访问控制漏洞主要分为三类:

水平方向上的特权提升:

这种情况发生在用户能够访问那些具有相同权限级别的其他用户的数据或功能时。

例如

当你登录自己的社交媒体账户时,你可以查看自己的内容并进行修改。不过,你无法访问其他用户的账户。不过,如果访问控制机制存在漏洞的话,情况可能会变得复杂起来。

2. 垂直权限提升:

这种情况发生在低权限用户(例如普通用户)能够访问那些仅由高权限角色(例如管理员)才能使用的数据或执行某些操作的时候。

例如

为了执行某些功能并访问某些资源,用户需要具备管理员权限。普通用户则没有这样的权限。如果垂直访问控制机制被破坏,那么攻击者就可以获得对这些功能的访问权限。

3. 依赖于上下文的权限提升:

这种情况发生在用户处于特定情境下时(例如,在某个特定页面、工作流程或状态中),从而获得了超出预期的权利。

示例/例子

想象一下,有一个电子商务网站:

  • 客户只能将自己的商品添加到自己的购物车中。
  • 但是,由于存在一个缺陷,如果在“结账”页面时更改了请求中的购物车ID,那么他们就可以查看或修改其他人的购物车内容了。

针对损坏的访问控制系统的手动操作/处理

以下是关于损坏的访问控制系统的逐步操作指南。

步骤1:访问实验室资源

  • 打开PortSwigger学院网站。
  • 请进入“访问控制”页面,然后点击PortSwigger上的“实验1”。学院/协会:未受保护的管理员功能。
  • 启动 Burp Suite
  • 安装 FoxyProxy 扩展程序,以便让网络流量通过 Burp 进行转发。

步骤2:配置实验室环境

  • 点击“首页”按钮后,页面会重新回到主页面。
  • 点击“我的账户”。此时会显示登录页面(不过,目前还没有直接的管理员选项)。

第三步:找到管理员面板。

  • 请尝试在URL中访问常见的管理面板路径:
/管理员
/管理员面板
/管理员
/管理员面板
https://0a8c003f03363823818d66c100140038.web-security-academy.net/administrator-panel

你会注意到,/管理员面板无需认证或限制即可访问。

步骤4:访问管理面板

  • 打开该页面:
  • 该面板已成功加载,这表明访问控制系统中的缺陷已经被修复了。

步骤5:删除目标用户

  • 在管理面板中,找到“删除用户”这个功能。
  • 请选择用户“carlos”。
  • 确认删除操作。
  • 现在,实验室应该会显示这样的消息:“恭喜你,你已经解决了这个实验问题!”

破坏访问控制所带来的影响

以下是访问控制被破坏所带来的主要影响:

独特的用户ID与您的数据

每当我们在一个网站上创建账户时,系统都会为我们分配一个唯一的用户ID。这个ID被用来识别我们,同时还可以从数据库中获取我们的个人信息。

例如,如果您的用户ID是986,那么您的个人资料页面的URL可能会如下所示:

https://brokenaccesscontrol.com/profile?id=986

现在,就像你一样,其他用户也都有自己独特的ID。如果网站没有实施有效的访问控制机制,那么你可以修改URL中的数字(例如,从……改为……)。986 to 987此外,用户还可以查看其他用户的个人资料。这种情况通常发生在服务器的访问控制机制不够完善的情况下,导致用户能够访问那些不属于他们的数据。

2. 利用薄弱的访问控制机制进行攻击

黑客可以利用那些存在的安全漏洞来访问那些只有授权用户才能使用的资源和服务。

示例:

Web应用程序的管理页面应该只有管理员才能访问。普通用户永远不应该能够访问该页面。但是,如果访问控制机制设计不当,那么攻击者就可以轻易地篡改该页面内容。URL然后打开管理面板。进入管理面板后,他们可以执行以下操作:

  • 窃取敏感用户数据
  • 删除或修改账户信息
  • 部署可能破坏甚至摧毁整个应用程序及其运行环境的恶意程序。

示例攻击场景

以下是两个示例攻击场景,它们展示了如何利用“访问权限被突破”这一漏洞来实施攻击。

情景1:通过URL参数访问其他用户的账户

有些应用程序会直接使用用户在请求中提供的数据,而无需对其进行验证。例如:

Java
pstmt.设置字符串(1,请求/要求.获取参数值(“acct”));结果集结果/成果=pstmt.执行查询();

如果您已经登录了账户,且您的账户号码出现在URL中,就像这样:

https://example.com/app/accountInfo?acct=12345

攻击者只需简单地更改这个数字即可。acct=67890试图查看其他用户的账户信息。如果应用程序没有正确检查权限,那么攻击者就可以看到甚至修改其他用户的数据。

情景2:访问受限制的管理员页面

许多网站会为不同类型的用户设置不同的板块,比如普通用户和管理员。例如:

  • 普通用户页面:
https://example.com/app/getAppInfo
  • 仅管理员可见的页面:
https://example.com/app/admin_getAppInfo

如果网站没有阻止未经授权的访问,那么攻击者(甚至普通登录的用户)也可以直接通过在浏览器中输入管理员页面的URL来尝试访问该页面。如果他们能够在不以管理员身份的情况下打开该页面,那无疑是一个严重的安全漏洞。

              马上抢免费试听资格
意向课程:*必选
姓名:*必填
联系方式:*必填
QQ:
思博SPOTO在线咨询

相关资讯

即刻预约

免费试听-咨询课程-获取免费资料