Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
도구/GitHubGitHub/abraxas/nextcloud-ldap-put-isadmin
Authentication & AuthorizationPrivilege EscalationVulnerability AnalysisWeb Application ExploitationWeb SecurityPenetration TestingLabs & Practice
GitHubabraxas/nextcloud-ldap-put-isadmin

nextcloud-ldap-put-isadmin

Nextcloud 35.0.0 — 위임된 Users 관리자가 LDAP로 승격된 관리자를 PUT으로 편집할 수 있으며, PATCH는 이를 올바르게 거부함

저장소 보기
815일 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Abraxas Labs - nextcloud-ldap-put-isadmin

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  nextcloud-ldap-put-isadmin

nextcloud-ldap-put-isadmin

Nextcloud Server 35.0.0 - Nextcloud GmbH

PUT /cloud/users/{id}는 위임된 Users 관리자가 대상이 로컬 그룹 admin에 속하지 않는 한 해당 대상을 편집할 수 있게 해줍니다. 같은 경로의 PATCH는 isAdmin()을 올바르게 사용합니다. LDAP로 승격된 관리자는 isAdmin()===true이며 종종 그 로컬 그룹에 속하지 않습니다.

헬프데스크 스타일의 Users 직무를 가진 악의적인 행위자는 실제 LDAP로 승격된 인스턴스 관리자를 비활성화하거나, 할당량을 잠그거나, 삭제할 수 있습니다. 더 새로운 PATCH API는 올바르게 거부합니다. 더 오래된 PUT 경로는 그렇지 않습니다.

ID아직 CVE 없음
CWECWE-863
CVSSHigh: 7.2 CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H (위임된 Users 관리자, 인스턴스 관리자 아님)
제품Nextcloud Server
영향받음35.0.0 (da02f41) 공식 nextcloud:35.0.0-apache 및 user_ldap
인증위임된 Users 관리자 vs LDAP로 승격된 관리자
라이선스GNU Affero GPL v3.0
랩127.0.0.1 전용

공격자가 할 수 있는 일

LDAP 사이트에서 LDAP 그룹을 인스턴스 관리자로 승격했습니다(occ ldap:promote-group). 그 사람들은 실제 관리자(isAdmin()===true)이지만 로컬 Nextcloud 그룹 admin에 속하지 않을 수 있습니다.

또한 누군가에게 Users 설정 직무(헬프데스크)를 부여했습니다. 그들은 완전한 인스턴스 관리자가 아닙니다.

그 헬프데스크 사용자는 다음을 할 수 있습니다:

  • LDAP로 승격된 관리자의 할당량 변경 (랩: PUT 200, PATCH 403)
  • 해당 관리자를 비활성화하거나 삭제 (enable/disable/delete/wipe에 동일한 isInGroup 게이트 적용)
  • LDAP 백엔드가 canChangePassword()를 허용하는 경우 비밀번호 재설정 (종종 false이므로 이에 의존하지 마십시오)

실제로 로컬 admin 그룹에 속한 사람에게는 이 작업을 할 수 없습니다. LDAP로 승격된 관리자가 없는 사이트에서는 이 작업을 할 수 없습니다. 더 안전한 PATCH API는 이미 차이를 알고 있습니다.


발견 방법

프로비저닝에는 동일한 사용자에 대한 두 개의 편집기가 있습니다. UsersController::editUser는 PUT입니다. editUserMultiField는 PATCH입니다. 같은 파일. 인접한 메서드. "이 사람이 관리자인가"에 대한 두 가지 다른 답변.

PUT은 isInGroup($target, 'admin')을 확인합니다. PATCH는 isAdmin($target)을 확인합니다. Manager::isAdmin()은 LDAP IIsAdmin을 먼저 묻고 그다음 로컬 그룹을 확인합니다. occ ldap:promote-group은 해당 uid를 로컬 admin 그룹에 넣지 않고 LDAP 그룹을 인스턴스 관리자로 만듭니다.

공식 nextcloud:35.0.0-apache와 osixia/openldap:1.5.0을 구성했습니다. 승격된 그룹 ncadmins의 LDAP 사용자 ldapadmin: isAdmin()===true, 로컬 admin에 없음. 로컬 helpdesk는 위임된 Users이며 인스턴스 관리자가 아닙니다.

PATCH를 먼저 보냈습니다. 더 새로운 경로입니다. PUT이 이와 일치할 것으로 예상했습니다. PATCH {"quota":"1 GB"}는 403을 반환했습니다. PUT key=quota&value=1 GB는 200을 반환했습니다. 이후 GET은 할당량 1073741824를 보여주었습니다.


랩

cd lab
./run.sh

대상은 오직 http://127.0.0.1:18342 (compose DNS ldap:389의 OpenLDAP).

SUCCESS NEXTCLOUD-LDAP-PUT-ISADMIN who=delegated-users-admin target=ldapadmin put=200 patch=403 NEXTCLOUD-LDAP-PUT-ISADMIN-WITNESS
  • lab/docker-compose.yml
  • lab/Dockerfile
  • lab/run.sh
  • lab/ldap/50-seed.ldif
  • lab/fixture.php

수정 방법

PATCH가 이미 하는 것과 동일한 방식으로 PUT/disable/delete/wipe에서 isAdmin($target)을 사용하십시오.


참고 자료

  • github.com/nextcloud/server 태그 v35.0.0
  • LDAP 승격: occ ldap:promote-group (PR #41650)
  • Abraxas Labs: abraxaslabs.tech · github.com/abraxas · @abraxas_null

라이선스

GNU Affero GPL v3.0. LICENSE를 참조하십시오. 루프백 랩 전용. 보증 없음.

도구 다운로드