一、什么是访问控制
访问控制是对谁可以执行什么操作或是否允许其访问所请求资源的管控。在具体的WEB环境中,访问控制依赖于身份验证和会话(session)管理:
1、身份验证:识别用户,确认他就是他声称的人。
2、会话管理:用session标识同一用户发出的后续HTTP请求。
3、访问控制:确定是否允许用户执行他们尝试执行的操作。
访问控制的设计和管理是一个复杂且动态的问题,它将业务、组织和法律约束应用于技术实施。由于访问控制设计的决策必须由人权衡后做出,而不是单纯由技术做出,因此出错的可能性很高。
二、访问控制漏洞利用
1、垂直权限提升 如果用户可以访问到他们不被允许访问的功能时,即为垂直权限提升。例如,如果非管理用户实际上访问到管理页面。用户可以通过浏览器直接输入URL到管理功能页。开发者未对所有功能页面做好安全验证防护,导致未授权访问。 2、横向权限提升 如果用户能够访问属于另一个用户的资源,即为横向权限提升。如查看他人个人信息页或查看工资单。攻击手段与垂直权限提升攻击手段类似,如直接访问URL。 3、从横向到纵向的权限提升 如果横向权限提升到了其他高权限账户,则实现了从横向到纵向的权限提升。 4、不安全的直接对象引用(IDOR) 应用程序直接调用被用户控制输入的信息进行查询,造成对恶意对象的直接调用。 |