越权
分为水平越权和垂直越权
如果使用A用户的权限去操作B用户的数据,A的权限小于B的权限,如果能够成功操作,则称之为越权操作。 越权漏洞形成的原因是后台使用了 不合理的权限校验规则导致的。
一般越权漏洞容易出现在权限页面(需要登录的页面)增、删、改、查的的地方,当用户对权限页面内的信息进行这些操作时,后台需要对 对当前用户的权限进行校验,看其是否具备操作的权限,从而给出响应,而如果校验的规则过于简单则容易出现越权漏洞。
水平越权
在同一级别的权限之间跨越边界,例如向其他用户发送私人消息、读取其他用户的文件等,从而绕过某些限制和防御措施
权限相同的两个用户,A用户可以获得B用户的某些敏感信息
以pikachu靶场为例
提示有三个用户
登录其中一个用户
可以查看个人信息
使用burp抓包查看个人信息传递的方式,可以看到当前用户的信息
尝试把用户名替换为第二个用户lili不做其他更改然后放包
可以看到显示了第二个用户lili的信息
发现问题:当前登录的lucy账户,但是抓包的时候在前端把用户名改为了lili,具体信息就变为了lili的,如果存在这个漏洞,那么可以在抓包的时候添加变量,添加用户名字典,就可以把其他用户的信息都拿下
登陆界面的话可以通过查看异常状态码,异常长度来判断登录成功与否
个人信息,会返回不同的长度,但是错误的话,会返回相同的信息,所以可以先输入一个错误信息,与burp爆破的长度来进行比对,进而判断登陆成功与否
扩展:用户名遍历同上
用户名遍历的时候判断返回的数据包正常与否,爆破出来的用户会显示密码错误,返回长度相同,可以手动输入一个用户名,做比对,进行判断
垂直越权
攻击者通过获取比其本身权限更高的权限,例如管理员权限、根用户权限等,从而执行敏感操作或访问受保护的资源。
提示查看有两个用户,admin为超级boss,pikachu为普通用户
登录进pikachu查看
当前用户只有查看权限
切换admin用户查看,拥有各种权限
使用burp抓包查看admin添加用户的时候进行的操作
抓到包,添加到repeater模块,点击添加用户后,请求页面进行跳转,服务器通过cookie字段进行判断
服务器可能没有对cookie字段进行校验,从而会导致垂直越权,使得普通用户拥有管理员权限
判断第一个包的作用:当管理员点击创建用户后,向服务器请求了一个php文件,服务器把页面返回给管理员
添加用户后查看数据包
用户创建成功
burp获取到数据包,发送到重放模块,进一步进行分析
由此了解admin创建用户的流程:又请求了另一个文件,并且使用POST方式给文件上传了用户的信息
以pikachu靶场为例,admin创建用户的步骤:首先请求第一个文件,让服务器返回一个form表单,管理员在表单内填入数据以后,以POST方式提交
切换pikachu用户尝试操作,想办法让pikachu用户新建一个用户
每个用户的cookie在服务器都应留有备案,并分别具备不同的权限
把pikachu用户的cookie复制,替换到admin创建用户使用的cookie
可以看到,使用pikachu普通用户的身份创建了一个新的用户
请求中,其他的信息都可以伪造,唯一不能伪造的cookie还没有做限制,如果在实际的渗透过程中,我知道了这个数据包,那我可以以一个普通用户的身份,使用管理员的权限新建一个用户