一、权限控制
1、什么是权限控制
2、权限控制的方式
(1)、ACL(访问控制列表)
(2)、RBAC(角色型访问控制)
3、权限控制的问题
权限控制有两个问题:一、未授权访问 二、越权访问
(1)、未授权访问
(2)、越权访问
越权访问又分为:水平越权、垂直越权
水平越权:同级别的角色越权访问,例如,不同部门的同级别的员工他们之间所访问的文件不一样,权限也不同,A部门越权访问了B部分的文件
垂直越权:简单来说,就是对上级权限的获取,例如普通用户到管理员用户
实例一、越权之水平越权
原理:
水平越权也叫横向越权,相同权限下不同的用户可以互相访问,比如A和B是相同权限下的用户,如果A能看到理论上只有B能看到的信息,或者A能执行理论上只有B能执行的操作,这就是水平越权。
1、打开浏览器,访问http://ip/pikachu/vul/overpermission/op1/op1_login.php
2、由于水平越权需要相同权限下不同的用户可以互相访问,所以需要先使用账户登录。点击“点一下提示”,找到给出的用户名密码。
3、先使用lucy账户登录,登录成功后发现有“点击查看个人信息”的地方
4、点击之后,查看lucy的个人信息
5、发现查看lucy的个人信息的URL中参数username的值是用户名lucy;由此猜测该参数值是哪个用户名就回显哪个用户的信息,因此将username的值由lucy替换为lili,发现lucy用户信息的页面已经切换为Lili的用户信息,成功实现水平越权。
实例二、权限控制之垂直越权
1、打开浏览器,访问http://ip/webug/pentest/test/3
2、输入用户名为:“tom”,密码为“123456”提交,登陆成功
3、点击更改密码,跳转到修改密码页面,用户名显示在URL
4、随便输入密码全部为:“test”
5、启动Burp Suite抓包工具,设置参数和浏览器代理
6、点击“更改密码”,提交输入的密码,Bp成功抓取数据包
7、将“username”更改为“admin”
8、点击“Forward”,转发数据包,切换到浏览器,密码更改成
9、点击“确定”,关闭浏览器代理,输入用户名为:“admin”,密码为:“test”,点击“submit”提交用户名和密码,登录成功
实例三、越权之垂直越权二
原理:
垂直越权也叫纵向越权,使用权限低的用户可以访问到权限较高的用户。比如A用户权限比B低,如果A可以访问理论上只有B才能访问的资源,或者执行理论上B才能执行的操作,这就是垂直越权。
1、打开浏览器,访问http://ip/pikachu/vul/overpermission/op2/op2_login.php#
2、由于垂直越权需要低权限用户访问高权限用户,所以需要先使用账户登录。点击“点一下提示”,找到给出的用户名密码。
3、提示中给了两个用户,一个是高权限的管理员用户,一个是普通用户。先使用高权限管理员admin登录
4、管理员admin用户可以查看用户列表、添加用户、删除用户等功能。点击“添加用户”,到添加用户界面,并填写添加用户的相关信息
5、启动Burp Suite抓包工具,设置参数和浏览器代理
6、点击“创建”,抓取数据包,并将其发送至“Repeater”重复发包模块,然后丢弃该数据包
7、关闭代理,在登录界面使用低权限用户pikachu登录,该用户只有查看权限,然后再次打开代理
8、刷新页面,抓取数据包
9、复制低权限pikachu用户Cookie字段的PHPSESSID值到Repeater模块抓取的高权限admin用户添加用户的数据包中
10、点击“Send”,发送数据包,然后切换至浏览器关闭代理
11、在低权限用户pikachu登录的状态下,刷新查看用户的页面,发现用户添加成功,使用只有查看用户功能的低权限的Cookie成功执行了高权限才有的添加用户功能,实现了垂直越权(因为我按了多次send)
这篇文章就先写到这里了