查看: 10906|回复: 0

V2Board 越权访问漏洞

[复制链接]
发表于 2022-12-17 18:04:39 | 显示全部楼层 |阅读模式

帖子内容是网上看到的,仅供学习使用。

漏洞描述
V2board面板 Admin.php 存在越权访问漏洞,由于部分鉴权代码于v1.6.1版本进行了修改,鉴权方式变为从Redis中获取缓存判定是否存在可以调用接口,导致任意用户都可以调用管理员权限的接口获取后台权限
漏洞影响
V2Board v1.6.1
网络测绘
[AppleScript] 纯文本查看 复制代码
title="V2Board"

漏洞复现
qw1.jpg

对比代码更新部分

qw2.jpg

与之前的代码相比较,鉴权在 v1.6.1 版本可以通过
[AppleScript] 纯文本查看 复制代码
auth_data
[AppleScript] 纯文本查看 复制代码
authorizetion
字段来实现验证
[AppleScript] 纯文本查看 复制代码
<?php

namespace App\Http\Middleware;

use Closure;
use Illuminate\Support\Facades\Cache;

class Admin
{
  /**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
  public function handle($request, Closure $next)
  {
    $authorization = $request->input('auth_data') ?? $request->header('authorization');
    if (!$authorization) abort(403, '未登录或登陆已过期');

    $authData = explode(':', base64_decode($authorization));
    if (!Cache::has($authorization)) {
      if (!isset($authData[1]) || !isset($authData[0])) abort(403, '鉴权失败,请重新登入');
      $user = \App\Models\User::where('password', $authData[1])
        ->where('email', $authData[0])
        ->select([
                 'id',
                 'email',
                 'is_admin',
                 'is_staff'
                 ])
        ->first();
      if (!$user) abort(403, '鉴权失败,请重新登入');
      if (!$user->is_admin) abort(403, '鉴权失败,请重新登入');
      Cache::put($authorization, $user->toArray(), 3600);
    }
    $request->merge([
                    'user' => Cache::get($authorization)
                    ]);
    return $next($request);
  }
}



可以发现主要要通过两次逻辑实现验证,一个是存在 header 中的 authorization 参数,再一个是校验 authorizations 是否存在于 Redis缓存中的

qw3.jpg
在登陆验证的代码中,成功使用 email 和 password 登陆后会返回 token 和 auth_data

qw4.jpg

同时 auth_data 会缓存于 Redis 中

qw5.jpg

由于 Admin.php 文件中只验证了 authrization 是否在 Redis的缓存中,所以当注册任意一个用户进行登陆后获取到 auth_data 就可以任意调用 管理员的接口

qw6.jpg

qw7.jpg


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

指导单位

江苏省公安厅

江苏省通信管理局

浙江省台州刑侦支队

DEFCON GROUP 86025

旗下站点

邮箱系统

应急响应中心

红盟安全

联系我们

官方QQ群:112851260

官方邮箱:security#ihonker.org(#改成@)

官方核心成员

Archiver|手机版|小黑屋| ( 沪ICP备2021026908号 )

GMT+8, 2025-3-7 01:55 , Processed in 0.020285 second(s), 12 queries , Gzip On, MemCache On.

Powered by ihonker.com

Copyright © 2015-现在.

  • 返回顶部