"访问控制缺陷(Access Control Flaws)"
本文档主要讨论访问控制缺陷(Access Control Flaws),这是Web应用程序安全的一个重要方面。访问控制是确保用户只能访问他们被授权的资源的机制。一个安全的访问控制方案可以防止未经授权的访问和数据泄露。
2.2 访问控制缺陷(Access Control Flaws)
访问控制缺陷是指攻击者可以绕过或破坏访问控制机制,访问未经授权的资源。这种缺陷可能出现在基于角色的访问控制方案或基于路径的访问控制方案中。
2.2.1 基于角色的访问控制方案(Role-Based Access Control)
在基于角色的访问控制方案中,角色代表了一组访问权限和特权。一个用户可以被分配一个或多个角色。一个基于角色的访问控制方案通常有两个部分组成:角色权限管理和角色分配。如果攻击者可以破坏基于角色的访问控制方案,可能允许用户执行不允许他/她的被分配的角色,或以某种方式允许特权升级到未经授权的角色的访问。
2.2.1.1 技术概念或主题(Concept / Topic To Teach)
在一个基于角色的访问控制方案中,角色代表了一组访问权限和特权。一个用户可以被分配一个或多个角色。
2.2.1.2 技术原理(How It works)
无
2.2.1.3 总体目标(General Goals)
每个用户都是角色的成员,每个角色只允许访问那些特定的资源。你的目标是浏览本站管理所使用的访问控制规则。
2.2.1.4 操作方法(Solutions)
先选择一个用户,再选择一个资源,然后点击【Check Access】,出现页面如下图所示。如果公用用户Moe对资源Public Share有访问权限,那么继续选择下一个资源Time Card Entry,然后点击【Check Access】,出现页面如下所示。如果公用用户Moe不具有对资源Time Card Entry的访问权限,那么继续选择下一个资源,直到检测到如下提示时:当显示“用户Larry对资源Account Manager具有访问权限时”,本课程完成。
2.2.2 绕过基于路径的访问控制方案(Bypass a Path Based Access Control Scheme)
在一个基于路径的访问控制方案中,攻击者可以通过提供相对路径信息遍历路径。因此,攻击者可以使用相对路径访问那些通常任何人都不能直接访问或直接请求就会被拒绝的文件。
2.2.2.1 技术概念或主题(Concept / Topic To Teach)
在一个基于路径的访问控制方案中,攻击者可以通过提供相对路径信息遍历路径。
2.2.2.2 技术原理(How It works)
大多数操作系统允许在路径中使用某些特征字符,如:
2.2.2.3 总体目标(General Goals)
用户“user”能够访问lesson_plans/English目录下所有文件。你需要尝试突破访问控制策略,访问不在下列清单中的文件。
2.2.2.4 操作方法(Solutions)
选中“Choose the file to view”列表下的任何一个文件,然后点击【View File】,用WebScarab工具截获向服务器发送的请求,如图所示:修改File的Value值为tomcat/conf/tomcat-users.xml,显示访问出错,因为当前路径为D:\??\WebGoat\WebGoat-5.4\tomcat\webapps\WebGoat\lesson_plans\English,而目标文件所在路径为tomcat/conf/tomcat-users.xml,所以此时正确的路径名为../../../../conf/tomcat-users.xml。
在本文档中,我们讨论了访问控制缺陷(Access Control Flaws),包括基于角色的访问控制方案和基于路径的访问控制方案。我们也介绍了如何使用WebScarab工具来突破访问控制策略,访问不在下列清单中的文件。