在了解网站逻辑漏洞之后,首先对访问控制进行了几种分类:垂直访问控制(如普通用户和管
理员)、水平访问控制(如不同用户之间)、上下文相关的访问控制(如密码修改过程,先验证再修
改密码,而不是直接绕过验证再修改,前后执行顺序相同);前面介绍了登录(验证身份)、会话(
保持身份),到这里,权限控制,根据不同用户的身份确定不同的权限控制,这是一个综合的过
程。
有关权限的漏洞主要有水平越权、垂直越权和未授权访问,如以下场景:
一是管理后台,任何访问admin目录的人都可以使用它的功能,只需找到管理后台的地址即可操
作,这属于未经授权的访问。一个查询个人用户信息的页面,参数是一串数字,我们通过变换数
字来查看别人的信息,这属于水平越权加用户ID可以遍历的问题。忘记密码的功能通常可分为2
个步骤:一是验证当前用户的身份;二是修改密码;经常是许多程序员在编写密码修改代码时忘
记了验证用户的身份,造成了前面所说的多阶段越权修改任意用户密码的问题。对于网站上的静
态资源,如pdf、doc等直接可供下载,通常都会有批量下载的问题,但这种与文件名相匹配的方
式可以更好地预测效果,属于未经授权访问。其它可能导致访问控制问题的原因有很多,如配置
问题,验证方式问题,验证不全面等,具体情况还要具体分析。
作,这属于未经授权的访问。一个查询个人用户信息的页面,参数是一串数字,我们通过变换数
字来查看别人的信息,这属于水平越权加用户ID可以遍历的问题。忘记密码的功能通常可分为2
个步骤:一是验证当前用户的身份;二是修改密码;经常是许多程序员在编写密码修改代码时忘
记了验证用户的身份,造成了前面所说的多阶段越权修改任意用户密码的问题。对于网站上的静
态资源,如pdf、doc等直接可供下载,通常都会有批量下载的问题,但这种与文件名相匹配的方
式可以更好地预测效果,属于未经授权访问。其它可能导致访问控制问题的原因有很多,如配置
问题,验证方式问题,验证不全面等,具体情况还要具体分析。
理解了与访问控制有关的安全问题后,如何进行测试呢?检测越权问题时,最好准备多个具有不
同权限的帐号进行检测,访问不同帐号下的正常资源,验证是否存在越权问题。关于测试方法书
中更多的细节,有关权限方面的问题应该如何防御?第一个是一些给开发者的建议:不能让用户
在不知道页面地址的情况下,对页面进行权限检查。用户提交的任何参数都不能信任。不要以为
使用者会按照程序的流程来操作。不要相信用户不会篡改客户自动提交的数据。下面是一些有效
的访问控制解决方案:详细记录各功能模块的访问控制需求。根据用户会话完成完整的权限验证
。使用中间组件来进行访问控制检查工作。确定所有的功能都在使用该组件。对敏感功能的访问
限制,例如:源代码IP。为保护静态资源,采用间接访问方式进行访问。仅信任来自服务方的数
据。对每个敏感操作的事件进行记录。
同权限的帐号进行检测,访问不同帐号下的正常资源,验证是否存在越权问题。关于测试方法书
中更多的细节,有关权限方面的问题应该如何防御?第一个是一些给开发者的建议:不能让用户
在不知道页面地址的情况下,对页面进行权限检查。用户提交的任何参数都不能信任。不要以为
使用者会按照程序的流程来操作。不要相信用户不会篡改客户自动提交的数据。下面是一些有效
的访问控制解决方案:详细记录各功能模块的访问控制需求。根据用户会话完成完整的权限验证
。使用中间组件来进行访问控制检查工作。确定所有的功能都在使用该组件。对敏感功能的访问
限制,例如:源代码IP。为保护静态资源,采用间接访问方式进行访问。仅信任来自服务方的数
据。对每个敏感操作的事件进行记录。