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
Authentication & AuthorizationVulnerability AnalysisExploitationWeb Application ExploitationWeb SecurityPenetration TestingAPI SecurityLabs & Practice
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만 요구합니다.

하나의 메뉴를 관리할 수 있는 토큰 사용자는 UI에서 거부된 메뉴, 보호된 관리자 main 메뉴를 포함하여 /api/index.php/v1/menus/administrator/items로 POST할 수 있습니다.

ID아직 CVE 없음
분류권한 잔여 / 인가 우회
도달 범위원격 (core.login.api가 있는 API 토큰)
CWECWE-863
CVSS높음: 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 사용자, 슈퍼 사용자 아님. 기본 core.login.api는 슈퍼 사용자 전용입니다.
라이선스GNU Affero GPL v3.0
랩127.0.0.1 전용

공격자가 할 수 있는 일

메뉴 A에만 항목을 생성할 수 있는 토큰 사용자. 해당 권한이 이미 없으면 확장을 설치할 수 없습니다. 이 잔여 권한으로 슈퍼 사용자가 되지는 않습니다.

권한메서드 / 경로종류랩 입증 또는 추론
거부된 메뉴에 항목 생성B의 menutype으로 POST /api/index.php/v1/menus/administrator/items무결성랩 입증. HTTP 200, staffmenu의 항목 102, 제목 poc-JOOMLA-MENU-ITEMS-API-WITNESS
보호된 관리자 main 메뉴에 URL 심기menutype=main으로 동일한 POST무결성랩 입증 HTTP 200. UI allowEdit는 main에 대해 false 반환
직원을 유사 로그인으로 유도하거나 실제 관리자 항목 숨기기관리자 메뉴에 게시된 URL 항목무결성 / 정찰쓰기에서 추론. 랩에서 https://example.invalid/ 심음
소유하지 않은 메뉴의 항목 편집 또는 삭제API PATCH / DELETE는 동일한 누락된 allow* 사용무결성추론. 랩에서 생성 실행
확장 설치 또는 슈퍼 사용자 되기다른 ACL 필요해당 없음차단됨. 관리자는 슈퍼 사용자 아님

이 핀에서 차단됨: 동일 사용자의 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 항목 컨트롤러는 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가 없는 기본 관리자. 연극: 리버스 셸. 오라클은 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 참조. 루프백 랩 전용. 보증 없음.

도구 다운로드