目录
5. Header头中X-Original-URL参数控制的访问权限
访问控制概念
简单的来说就是应用程序首先会判断用户的身份(账号密码登录),随后确认后续请求是否由该用户发出(会话管理),然后判断是否允许用户执行“所请求的操作”或访问“所请求的资源(访问控制)”
1、从用户角度访问控制模型分为以下类型:
- 垂直访问控制:控制不同权限等级的用户访问应用程序不同的功能;如“管理员”可以修改/删除账号,而普通账号无法操作。
- 水平访问控制:控制用户只能访问自己的资源,而不能访问其他用户相同类型的资源;如“银行程序用户只能从自己的账号进行付款,而不能查看其他用户的账户”。
- 上下文相关的访问控制(多步骤):防止用户以错误的顺序执行操作;如“零售网址阻止用户付款后,修改订单信息”等逻辑顺序。
2、出现访问控制漏洞的原因:
- 理论上应用程序需要对每一个请求,以及特定用在特定时刻的每一项操作,都需要进行访问控制检查,但是由于该策略是人为设定,所以常常出现安全问题。
漏洞类型
应用程序允许攻击者执行某种攻击者没有执行权限的操作,就会出现访问控制漏洞。
三种访问控制模型分别对应着
- 垂直权限提升
- 水平权限提升
- 多步骤访问控制
并且这些漏洞之间没有明确界限,按照漏洞的表现形式和检测方法差异会分为很多不同的类型:
- 未受保护的功能
- 基于标识符的访问控制漏洞
- 基于多步骤的访问控制漏洞
- IDOR
- 不安全的访问控制机制
- 访问控制绕过漏洞
Lab
1. robots.txt泄露未授权访问页面
访问robots.txt,可看到隐藏的敏感页面:

直接访问即可
2. JS文件暴露未授权访问页面
通过F12查看js代码,发现有敏感页面:

访问即可:

3. 参数控制的访问权限
先登录普通用户,发现一个Admin参数控制是否是管理员:

登录普通用户之后,访问管理员页面,将Admin改为true即可访问:


4. 响应包参数控制的访问权限
一些访问控制的参数有时候可能不在登录处或者访问敏感页面处,而是在更新一些个人信息的时候。
比如在更改个人邮箱处,以json传输数据:

查看响应包可看到敏感参数roleid,猜测其是控制权限的参数:

在请求头中加入roleid,达到覆盖参数的效果:

回到主页就变成了管理员页面:

5. Header头中X-Original-URL参数控制的访问权限
直接访问管理员页面,未发现可控参数:

回到GET网站目录/,尝试加入X-Original-URL参数,值为随意:

参数成功生效,初步判断X-Original-URL参数可以控制页面的访问。
改变参数X-Original-URL: /admin即可访问特定的未授权页面:

6. 受请求方法控制的访问权限
有两个用户,一个是admini

本文深入探讨了访问控制的概念,包括垂直与水平访问控制,并详细分析了多种访问控制漏洞,如IDOR、权限提升及多步骤访问控制绕过。通过实际案例,揭示了常见漏洞的检测方法与利用技巧。
最低0.47元/天 解锁文章
7658

被折叠的 条评论
为什么被折叠?



