Web漏洞安全-失效访问权限控制

这篇博客探讨了Web漏洞中的访问控制失效问题,包括意外的代理访问、路径穿越和敏感数据泄漏等攻击场景。文章指出,系统设计应遵循最小权限原则,强调所有请求需经过访问控制检查。防御方案包括使用严格的输入验证、记录访问控制事件、防御路径穿越等。此外,还讨论了CSRF漏洞的防御策略,如同源策略、CSRF Token和双重Cookie等。
摘要由CSDN通过智能技术生成


访问控制

那么什么是访问控制呢?访问控制是一种策略,在这种策略的控制下,用户的操作不能逾越预设好的权限边界。而访问控制一旦失效通常会导致未认证信息泄露、内部数据篡改、数据删除和越权操作等后果。访问控制失效型问题通常有以下几种类型:

  1. 系统在实现过程中违背了“最小权限原则” 或 “默认拒绝原则”,在这种情况下用户可以获得一些特殊权限,而这些特殊权限原本只应该授权给特定的用户或角色;
  2. 通过修改 URL 地址、内部程序状态、HTML 页面,或者使用 Cyber 工具修改 API 请求的方式绕过访问控制
  3. 通过提供唯一 ID 的方式预览或者修改其他账户信息及数据;
  4. 未经过访问控制地通过 POST、PUT 和 DELETE 方法访问 API;
  5. 通常意义上的提权,比如未登录状态下的用户操作,或者常规用户登录状态下的管理员操作;
  6. 元数据操纵,比如重放或者修改 JWT(JSON Web Token)访问控制令牌,或者通过操纵 Cookie 的方式进行提权;
  7. CORS 误配置,可以导致来自未认证源的 API 访问。

这里我们首先来看几种简单攻击场景。

  1. 这个应用在 SQL 调用中直接使用了未经验证的数据,并利用该数据进行信息查询:

pstmt.setString(1, request.getParameter("acct"));
ResultSet results = pstmt.executeQuery();

对于一个攻击者而言,只需要简单地在浏览器地址栏中修改 acct 参数,即可对 SQL 语句进行操纵,而在未经验证的情况下,该攻击者可以访问到其他账户的信息。


https://example.com/app/accountInfo?acct=notmyacct
  1. 一个攻击者可以很轻松地修改 URL 地址,尝试去访问他的目标链接,比如这里攻击者试图通过 URL 地址修改直接访问 admin 页面:

https://example.com/app/getappInfo
https://example.com/app/admin_getappInfo

如果攻击者成功访问了第二个链接,那么说明系统在权限设计和访问控制上就是存在问题的。

  1. 由于实现过程中未对用户访问参数设置边界,导致了很多越权问题的发生:

https://example.com/order/?order_id=2021102617429999

攻击者可以尝试修改上述 API 接口中的 order_id 参数,使其在程序接口上的输入合法,但是对于用户而言却是越权行为。

  1. HTTP PUT 方法最早目的用于文件管理操作,可以对网站服务器中的文件实现更改删除的更新操作,该方法往往可以导致各种文件上传漏洞,造成严重的网站攻击事件:

put /root/Desktop/shell.php

上述代码在支持 PUT 方法的环境中,上传 Webshell 进行提权;在实际运用中,若必须启用该方法,则需要对该方法涉及文件资源做好严格的访问权限控制。

  1. Web
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值