Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

フィードお問い合わせプライバシー© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
joomla-menu-items-api — Joomla 6.1.3 - 高 - リモート - ACL - メニュー項目APIの残存 | Kitploit
ツール/GitHubGitHub/abraxas/joomla-menu-items-api
認証と認可脆弱性分析エクスプロイトウェブアプリケーション悪用ウェブセキュリティペネトレーションテストAPIセキュリティラボと実践
GitHubabraxas/joomla-menu-items-api

joomla-menu-items-api

Joomla 6.1.3 - 高 - リモート - ACL - メニュー項目APIの残存

リポジトリを見る
42日前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

Abraxas Labs - joomla-menu-items-api

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  joomla-menu-items-api

joomla-menu-items-api

クラス: 権限の取り残し 到達性: リモート

Joomla CMS 6.1.3 (0f2d4de) - Open Source Matters

メニュー項目の管理者 UI は com_menus.menu.{id} をチェックし、menutype == main を拒否します。api/components/com_menus/src/Controller/ItemsController.php には allowAdd / allowEdit が存在しないため、ApiController は com_menus に対する core.manage と core.create / core.edit のみを要求します。

1 つのメニューを管理できるトークンユーザーは、UI では拒否されているメニュー、保護された管理者用 main メニューを含めて、/api/index.php/v1/menus/administrator/items に POST できます。

IDCVE 未採番
クラス権限の取り残し / 認可バイパス
到達性リモート (core.login.api を持つ API トークン)
CWECWE-863
CVSSHigh: 8.1 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N
製品Joomla CMS
影響を受けるバージョン6.1.3 (0f2d4de4729eb951e0878fec98c7990da07915b2)
認証core.login.api + com_menus に対する core.manage + core.create/core.edit を持つリモート API ユーザー。Super User ではない。デフォルトの core.login.api は Super User のみ。
ライセンスGNU Affero GPL v3.0
ラボ127.0.0.1 のみ

攻撃者ができること

メニュー A でのみ項目を作成できるトークンユーザー。その権限をすでに持っていない限り、拡張機能をインストールすることはできません。この取り残しによって Super User になることはありません。

権限メソッド / パス種類ラボ実証または推測
拒否されているメニューに項目を作成POST /api/index.php/v1/menus/administrator/items に B の menutype を指定完全性ラボ実証済み。HTTP 200、staffmenu 上の項目 102、タイトル poc-JOOMLA-MENU-ITEMS-API-WITNESS
保護された管理者用 main メニューに URL を設置同じ POST に menutype=main を指定完全性ラボ実証済み HTTP 200。UI の allowEdit は main に対して false を返す
スタッフを偽のログイン画面に誘導、または実際の管理者項目を隠す管理者メニュー上の公開 URL 項目完全性 / 偵察書き込みから推測。ラボでは https://example.invalid/ を設置
所有していないメニューの項目を編集または削除API の PATCH / DELETE は同じ欠落した allow* を使用完全性推測。ラボでは作成を実行
拡張機能のインストールまたは Super User 化他の ACL が必要該当なし不可。Manager は Super User ではない

このピンで不可: 同じユーザーによる staffmenu の UI 追加/保存 (not permitted)。labmenu の UI 追加は依然として機能します。6.1.1 の Groups API core.admin ゲートは変更されていません。

発見の経緯

2026 年の JSST の波の後、6.1.3 をピン留めしました。管理者用 ItemController はすでに正しい処理を行っています:

return $user->authorise('core.create', 'com_menus.menu.' . $menutypeID);
if ($item->menutype == 'main') {
    return false;
}
return $user->authorise('core.edit', 'com_menus.menu.' . (int) $menutypeID);

API の items コントローラーは allowAdd / allowEdit をオーバーライドしていません。デフォルトの ApiController はコンポーネントの core.manage と core.create / core.edit のみをチェックします。モデルの canSave パスはコンポーネントの core.edit のみをチェックします。バッチコピー/移動はすでにメニューアセットをチェックしています。

すでに記録済みの誤った道: UI の HTTP 200 を許可と読み取ること (本文は "not permitted")。UI において com_menus の core.manage を十分とみなすこと (UI は依然として com_menus.menu.{id} を基準にする)。core.login.api を持たない標準の Manager。茶番: リバースシェル。オラクルは staffmenu と main に対する API 200、および B に対する UI 拒否です。

同じピンの取り残し: levels API、media override、articles catid。

ラボ

python3 joomla-menu-items-api-Abraxas-Labs.py

または

cd lab
./run.sh

ターゲットは http://127.0.0.1:19530 のみ。イメージ joomla:6.1.3-php8.3-apache。

SUCCESS joomla-menu-items-api api-b-http=200 item-id=102 menutype=staffmenu api-main-http=200 ui-add-b=200 ui-save-b=200 JOOMLA-MENU-ITEMS-API-WITNESS

ui-add-b / ui-save-b は HTTP 200 です。B の拒否は UI の "not permitted" 本文であり、403 ステータスではありません。

修正

ItemController::allowAdd / allowEdit (および delete) を main ブロックを含めて API コントローラーにコピーします。canSave でメニュータイプのアセットを同じようにチェックします。

参考資料

  • github.com/joomla/joomla-cms タグ 6.1.3 (0f2d4de4729eb951e0878fec98c7990da07915b2)
  • ItemsController.php
  • ItemController.php
  • 同じタグ: joomla-levels-api · joomla-media-override · joomla-articles-catid
  • CWE-863

ライセンス

GNU Affero GPL v3.0。LICENSE を参照。ループバックラボのみ。無保証。

ツールをダウンロード