访问控制/越权漏洞 -- 学习笔记

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

目录

访问控制概念

漏洞类型

Lab

1. robots.txt泄露未授权访问页面

2. JS文件暴露未授权访问页面

3. 参数控制的访问权限

4. 响应包参数控制的访问权限

5.  Header头中X-Original-URL参数控制的访问权限

6. 受请求方法控制的访问权限

7. 控制userID的水平越权

8. 随机userID控制的水平越权

9. userID泄露造成的水平越权

10. userID控制的垂直越权

11. 不安全的直接对象引用(IDOR)

常规IDOR

用户注册处的IDOR

邮件订阅中的IDOR

意见反馈中的IDOR

12. Step被跳过的访问控制漏洞

13. Referer控制的访问权限


 

访问控制概念

简单的来说就是应用程序首先会判断用户的身份(账号密码登录),随后确认后续请求是否由该用户发出(会话管理),然后判断是否允许用户执行“所请求的操作”或访问“所请求的资源(访问控制)”

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

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值