渗透测试之pikachu 越权(水平越权+垂直越权)

1.   over permission越权概述

如果使用A用户的权限去操作B用户的数据,A的权限小于B的权限,如果能够成功操作,则称之为越权操作。 越权漏洞形成的原因是后台使用了 不合理的权限校验规则导致的。

一般越权漏洞容易出现在权限页面(需要登录的页面)增、删、改、查的的地方,当用户对权限页面内的信息进行这些操作时,后台需要对 对当前用户的权限进行校验,看其是否具备操作的权限,从而给出响应,而如果校验的规则过于简单则容易出现越权漏洞。

因此,在在权限管理中应该遵守:

    1.使用最小权限原则对用户进行赋权;

    2.使用合理(严格)的权限校验规则;

    3.使用后台登录态作为条件进行权限判断,别动不动就瞎用前端传进来的条件;

  越权漏洞属于逻辑漏洞,是由于权限校验的逻辑不够严谨导致的

  每个应用系统其用户对应的权限是根据其业务功能划分的,而每个企业的业务又都是不一样的

  因此越权漏洞很难通过扫描工具发现,往往需要通过手动进行测试

2.   水平越权

  A用户和B用户属于同一级别用户,但各自不能操作对方个人信息。A用户如果越权操作B用户个人信息的情况称为水行越权操作

  三个用户 lucy/lili/kobe  密码都为123456

  渗透测试之pikachu 越权(水平越权+垂直越权)_第1张图片

  随便登录其中一个用户lucy 可以看到地址栏里   “url为op1_mem.php?username=lucy&submit=点击查看个人信息”

  渗透测试之pikachu 越权(水平越权+垂直越权)_第2张图片

  退出lucy登录其他用户 可以看到地址只有username不同

  渗透测试之pikachu 越权(水平越权+垂直越权)_第3张图片

  不退出lili账号 直接在地址栏中将username改成lucy 也可以直接访问lucy的信息

  渗透测试之pikachu 越权(水平越权+垂直越权)_第4张图片

3.   水平越权源代码

  只判断了是否登录 并没有用session来校验

  渗透测试之pikachu 越权(水平越权+垂直越权)_第5张图片

  查看function.php中的check_op_login函数  只是判断了['op']['username']呵['op']['password']是否被定义

  渗透测试之pikachu 越权(水平越权+垂直越权)_第6张图片

  查看登录页面的代码 发现所有用户名登录后都会定义['op']['username']和['op']['password']

  渗透测试之pikachu 越权(水平越权+垂直越权)_第7张图片

  因为在查看信息的界面 只判断了是否登录 并没有判断是哪个用户

4.   垂直越权

  A用户权限高于B用户,B用户越权操作A用户的权限的情况称为垂直越权

  渗透测试之pikachu 越权(水平越权+垂直越权)_第8张图片

  登录普通用户pikachu 密码000000  只有查看权限

  渗透测试之pikachu 越权(水平越权+垂直越权)_第9张图片

  登录超级用户 admin 密码为123456  拥有修改用户信息和添加用户的权限

  渗透测试之pikachu 越权(水平越权+垂直越权)_第10张图片

  用admin用户添加一个新用户 并用burp进行抓包 可以看到PHPSESSID

  渗透测试之pikachu 越权(水平越权+垂直越权)_第11张图片

  打开另一个浏览器 登录普通用户pikachu后尝试直接复制admin用户的添加用户网址来进行添加用户 (未授权访问)

  渗透测试之pikachu 越权(水平越权+垂直越权)_第12张图片

  发现会回到登录界面

  渗透测试之pikachu 越权(水平越权+垂直越权)_第13张图片

  但是用admin用户查看的时候 test2用户已经被添加成功(admin用户需要在登陆状态)

  渗透测试之pikachu 越权(水平越权+垂直越权)_第14张图片

  用burp实现 重新用管理员账号添加用户 用burp进行抓包

  渗透测试之pikachu 越权(水平越权+垂直越权)_第15张图片

  将抓到的请求发送到repeater中

  渗透测试之pikachu 越权(水平越权+垂直越权)_第16张图片

  登陆普通用户 抓取普通用户的cookie值

  渗透测试之pikachu 越权(水平越权+垂直越权)_第17张图片

  普通用户登陆成功后 将这个cookie值修改到发送到repeater中的请求中 重放这个数据包

  渗透测试之pikachu 越权(水平越权+垂直越权)_第18张图片

  刷新页面查看 发现有了两个test3 一个为admin添加的 一个是重放admin的数据包添加的

  渗透测试之pikachu 越权(水平越权+垂直越权)_第19张图片

5.   垂直越权源代码

  op2_login.php页面 对于登陆用户的level进行了判断 判断他们进入哪个页面

  渗透测试之pikachu 越权(水平越权+垂直越权)_第20张图片

  op2_user.php 只判断了是否登陆

  渗透测试之pikachu 越权(水平越权+垂直越权)_第21张图片

  function中的check_op2_login函数  与check_op1_login一样 只是判断了是否定义变量

  渗透测试之pikachu 越权(水平越权+垂直越权)_第22张图片 

  op2_admin.php 在这个页面进行了登陆和level级别的判断 所以登陆pikachu用户后访问admin.php页面会直接跳转到登陆页面

  渗透测试之pikachu 越权(水平越权+垂直越权)_第23张图片

  添加用户的页面 op2_admin_edit.php 只判断了是否登陆 没有验证级别 所以存在越权

  渗透测试之pikachu 越权(水平越权+垂直越权)_第24张图片

你可能感兴趣的:(渗透测试基础)