Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

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

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

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
exploit-CVE-2023-3460 — CVE-2023-3460에 대한 익스플로잇 및 분석, Ultimate Member WordPress 플러그인의 치명적인 권한 상승 취약점으로, 재현 환경 및 완화 지침을 포함합니다. | Kitploit
도구/GitHubGitHub/julienbrs/exploit-cve-2023-3460
Privilege EscalationVulnerability AnalysisExploitationWeb Application ExploitationLearning & EducationLabs & Practice
GitHubjulienbrs/exploit-cve-2023-3460

exploit-CVE-2023-3460

CVE-2023-3460에 대한 익스플로잇 및 분석, Ultimate Member WordPress 플러그인의 치명적인 권한 상승 취약점으로, 재현 환경 및 완화 지침을 포함합니다.

저장소 보기
2년 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

title: "Sécurité des SI - CVE 2023-38408"

CVE-2023-3460 분석 및 익스플로잇

CVE IDCVSS 점수발견일영향받는 플러그인취약점 유형
CVE-2023-3460Critical2023-04-07Ultimate Member무단 관리자 액세스

목차

  • 소개
  • 취약점의 일반적인 메커니즘
    • WordPress의 역할 관리 메커니즘
    • Ultimate Member의 잘못된 구현
  • CVE-2023-3460에 대한 보안 목표
    • 가정
    • 일반적인 사용자
    • 보호해야 할 자산
    • 위협
    • 보안 기능
  • 일반적인 아키텍처
  • 취약점 완화
  • 취약점 실험
    • 재현
    • exploit.py 세부 정보
  • 부록
    • 용어집
    • 출처

소개

본 연구는 WordPress의 "Ultimate Member" 플러그인에 영향을 미치는 치명적인 취약점인 CVE¹-2023-3460에 초점을 맞춥니다. 이 취약점은 무단 권한 상승을 허용합니다. 이 플러그인은 WordPress 사이트에서 프로필 관리를 위해 널리 사용됩니다. 이 취약점은 공격자가 관리자 권한을 획득하여 사이트를 완전히 제어할 수 있게 하므로 심각한 위험을 초래합니다. 그렇기 때문에 이 결함은 NIST²에 의해 CVSS 척도에서 치명적이며 9.1점으로 분류되었습니다.

취약점의 일반적인 메커니즘

CVE-2023-3460은 플러그인의 역할 및 권한 관리 결함을 악용합니다. WordPress에서 WP_Capabilities³ 함수는 사용자의 역할과 권한을 관리하는 데 사용됩니다. 이 함수는 관리자가 각 사용자 역할에 대해 특정 권한을 정의할 수 있게 합니다. 그러나 이 함수의 잘못된 사용은 권한 상승 취약점으로 이어질 수 있습니다.

Ultimate Member의 경우, 이 취약점은 공격자가 WP 권한 검사를 우회하고 사이트에 대한 관리자 수준의 액세스를 얻을 수 있게 합니다. 이 플러그인은 사용자가 조작해서는 안 되는 사전 정의된 사용자 메타데이터 키 목록을 사용하여 작동합니다. 그러나 차단 목록에 기반한 이러한 보안 접근 방식은 우회 가능성을 남겨두기 때문에 종종 불충분합니다.

WordPress의 역할 관리 메커니즘

WordPress는 wp_capabilities라는 구조를 통해 사용자의 역할과 권한을 관리합니다. 이 구조는 사용자에게 부여된 다양한 역할과 권한의 직렬화된 표현입니다. 예를 들어, 관리자는 편집자나 기여자와는 다른 권한 집합을 갖습니다. 이러한 권한은 wp_usermeta 테이블에 직렬화된 배열 형태로 WordPress 데이터베이스에 저장됩니다.

Ultimate Member의 잘못된 구현

CVE-2023-3460 결함은 Ultimate Member의 역할 및 권한 관리 구현에서 비롯됩니다. 이 플러그인은 사용자가 조작해서는 안 되는 사전 정의된 사용자 메타데이터 키 목록을 사용하여 작동합니다. 이 목록은 계정 생성 시 사용자가 이러한 키를 저장하려고 시도하는지 확인하는 데 사용됩니다. 이 접근 방식은 일반적인 보안 안티패턴으로, 알려진 유해 입력을 차단하는 것(차단 목록)이 직관적으로 보일 수 있지만 예상보다 복잡하고 종종 보안 우회의 여지를 남깁니다.

여기서 Ultimate Member는 사용자 등록 시 제출된 메타데이터에 대한 불충분한 검증을 사용합니다. 이 플러그인은 사용자가 제출한 메타데이터가 허용되는지 확인하기 위해 is_metakey_banned이라는 함수를 사용합니다. 이 함수는 제출된 메타데이터가 금지된 메타데이터 목록에 있는지 확인합니다. 만약 그렇다면 함수는 true를 반환하고 사용자 등록이 차단됩니다. 그렇지 않으면 함수는 false를 반환하고 사용자 등록이 허용됩니다.

그러나 WordPress는 일부 악센트 문자를 기본 문자로 허용합니다. 사용자가 악센트 문자를 포함한 메타데이터를 제출하면 is_metakey_banned 함수가 이를 감지하지 못하고 사용자 등록이 허용됩니다.

CVE-2023-3460에 대한 보안 목표

가정

조직 보안

Ultimate Member 플러그인은 소규모 개인 블로그부터 대규모 전자상거래 사이트까지 다양한 환경에서 널리 사용됩니다. 최종 사용자나 사이트 관리자의 컴퓨터 보안 역량에 대해 특정한 가정을 할 수 없습니다.

물리적 보안

WordPress 사이트를 호스팅하는 서버는 일반적으로 안전한 데이터 센터에 있습니다. 개인 사이트의 경우 물리적 보안은 사용자의 개별 환경에 따라 달라집니다.

논리적 보안

Ultimate Member 플러그인이 공식 지침에 따라 올바르게 설치 및 구성되었다고 가정합니다. WordPress 사이트는 기본 보안 조치가 적용된 상태로 최신 상태로 유지된다고 가정합니다.

일반적인 사용자

  • 사이트 관리자: 플러그인 구성과 사이트 전반적인 보안을 관리합니다.
  • 사이트 사용자: Ultimate Member 플러그인을 통해 사이트에 등록하고 상호 작용합니다.
  • 개발자: 특정 요구 사항에 맞게 플러그인 기능을 사용자 지정하고 확장합니다.

보호해야 할 자산

  • B1 사용자 데이터 기밀성: 개인 정보 및 로그인 자격 증명.
  • B2 웹사이트 무결성: 사이트 콘텐츠 또는 구조의 무단 변경 방지.
  • B3 Ultimate Member 플러그인 무결성: 플러그인의 소스 코드 및 기능.

위협

  • M1 무단 액세스: 공격자가 취약점을 통해 관리자 권한을 획득합니다.
  • M2 악성 코드 주입: 코드 주입을 통한 사이트 동작 변경.
  • M3 데이터 유출: 사용자의 기밀 데이터에 대한 무단 액세스.
  • M4 평판 손상: 사이트 손상으로 인한 평판에 대한 부정적인 영향.

위협에 의한 자산 커버리지

7.5 보안 기능

  • F1 안전한 역할 관리: 역할 및 권한 관리를 위한 강력한 메커니즘.
  • F2 입력 검증: 악성 데이터 주입을 방지하기 위한 제출 데이터의 엄격한 검사.
  • F3 보안 업데이트 및 패치: 알려진 취약점을 수정하기 위한 플러그인의 정기적인 업데이트.
  • F4 교육 및 인식 제고: 관리자와 사용자에게 보안 모범 사례에 대한 정보 제공.

일반적인 아키텍처

웹 서버:

  • WordPress 사이트를 호스팅합니다.
  • 일반적으로 Linux 머신의 Apache 또는 Nginx 서버입니다(호스팅 제공업체 또는 관리자 선호도에 따라 다를 수 있음).
  • 웹사이트 액세스를 허용하기 위해 인터넷에 연결됩니다.

데이터베이스 관리 시스템(DBMS):

  • 일반적으로 MySQL 또는 MariaDB입니다.
  • Ultimate Member가 관리하는 사용자 데이터를 포함한 WordPress 사이트 데이터를 저장합니다.

Ultimate Member 플러그인이 설치된 WordPress:

  • 사용자 프로필 관리, 등록 및 역할 관리를 위해 Ultimate Member 플러그인이 설치된 WordPress.
  • Ultimate Member와 상호 작용할 수 있는 다른 플러그인 및 테마를 포함할 수 있습니다.

네트워크 및 보안:

  • 서버를 보호하기 위한 방화벽 및 기타 네트워크 보안 조치.
  • 클라이언트와 서버 간의 통신을 보호하기 위한 SSL/TLS.

사용자/관리자:

  • WordPress 사이트와 Ultimate Member 플러그인을 관리하고 유지 관리하는 사이트 관리자.
  • 사이트에 등록하고 상호 작용하는 최종 사용자.

외부 서비스(선택 사항):

  • 알림 및 계정 관리를 위한 이메일 서비스.
  • 연결성 및 확장된 기능을 위한 소셜 네트워크 또는 기타 플랫폼과의 통합.

취약점 완화

관리자로서 이 취약점과 관련된 위험을 완화하기 위해 취할 수 있는 구체적인 조치는 다음과 같습니다.

1. 수정 가능한 메타데이터 제한

사용자 입력 검증: 특히 wp_capabilities와 같은 메타데이터를 수정하는 모든 사용자 입력을 확인하기 위해 서버 측 검증을 구현합니다. 차단 목록 대신 정규식 또는 검증 목록(허용 목록)을 사용하여 입력을 제어합니다.

2. 등록 양식 보안

CAPTCHA 및 요청 속도 제한: 자동화된 공격을 방지하기 위해 등록 양식에 CAPTCHA 및 요청 속도 제한을 통합합니다. 클라이언트 측 검증: 클라이언트 측 검증만으로는 충분하지 않지만 자동화된 공격을 방지하고 사용자 경험을 개선하는 데 도움이 될 수 있습니다.

3. 로그 추적 및 분석

로그 모니터링: 사용자 역할의 의심스러운 변경 또는 메타데이터 주입 시도를 감지하기 위한 로그 모니터링 시스템을 구축합니다. 이는 로그 분석 도구를 사용하여 수행할 수 있습니다.

4. 고급 웹 보안 솔루션 사용

웹 애플리케이션 방화벽(WAF): 알려진 공격과 알려지지 않은 공격(악성 코드 주입 공격 포함)을 차단하도록 WAF⁴를 구성합니다. 침입 탐지/방지 시스템(IDS/IPS)⁵: 취약점 악용 시도를 탐지하기 위해 IDS/IPS를 구축합니다.

5. 권한 및 역할 관리

사용자 역할 검토: 비정상적인 권한 상승을 탐지하기 위해 사용자에게 할당된 역할을 정기적으로 검토합니다. 권한 제한: 새 사용자에게 기본적으로 부여되는 권한을 제한하고 최소 권한 원칙에 따라 높은 역할 할당에 대한 관리자 검증을 요구합니다. 이 원칙에 대한 자세한 내용은 여기에서 확인하세요.

6. 업데이트 및 보안 패치

신속한 업데이트 적용: 플러그인과 WordPress 자체에 대한 정기적인 보안 업데이트를 수행합니다.

7. 개발자 교육 및 인식 제고

개발자에게 앞서 언급한 보안 모범 사례를 교육하고 잘못된 구현의 위험/영향에 대한 인식을 높입니다.

취약점 실험

재현

결함 악용을 시작하는 데 도움이 되는 Makefile이 제공됩니다. 다음과 같이 사용할 수 있습니다:

  • make up 필요한 모든 설치와 함께 WordPress를 시작합니다. 대기 시간 후 WordPress 서버가 시작되고 구성되며 Ultimate Member 플러그인 버전 2.6.5가 설치됩니다. 그런 다음 로그인 페이지에서 admin:password 자격 증명으로 WordPress에 로그인할 수 있습니다. 사용자 탭으로 이동하면 admin 사용자만 존재하는 것을 확인할 수 있습니다. one_admin

    참고: docker-compose가 있고 docker compose가 없는 경우 Makefile을 그에 따라 수정할 수 있습니다(변수 DOCKER_COMPOSE= docker-compose).

그런 다음 결함 악용을 시작할 수 있습니다:

  • make exploit 그런 다음 익스플로잇이 제공한 자격 증명으로 로그인 페이지에서 WordPress에 로그인하고 사용자 탭에서 Administrator 역할을 가진 새 사용자가 생성된 것을 확인할 수 있습니다.

    two_admin

  • make down WordPress 서버를 중지하고 데이터를 삭제합니다.

exploit.py 세부 정보

  • make exploit는 exploit.py 스크립트를 실행합니다. 이 스크립트는 여러 단계로 작동합니다: 익스플로잇 기술 세부 사항

1. 취약점 확인: 악용을 진행하기 전에 스크립트는 대상 사이트에 설치된 Ultimate Member 플러그인 버전이 취약한지, 즉 2.6.7 미만인지 확인합니다.

2. 보안 Nonce 획득: 스크립트는 대상 사이트의 등록 페이지에서 보안 nonce³를 획득합니다. 이 nonce는 등록 요청이 WordPress에서 수락되기 위해 필요합니다. nonce는 등록 페이지의 HTML 코드를 분석하여 획득됩니다.

3. 취약점 악용: 그런 다음 스크립트는 조작된 매개변수(wp_càpabilities[administrator]=1)를 포함한 POST 요청을 등록 페이지에 제출합니다. 이 매개변수는 악센트 문자(à)를 사용하여 플러그인의 보안 검사를 우회하고 데이터를 잘못 직렬화하여 새로 생성된 사용자에게 관리자 역할을 부여합니다.

4. 익스플로잇 확인: 요청 전송 후 스크립트는 서버 응답을 분석하여 작업이 성공했는지 확인합니다.

부록

용어집

  1. CVE(Common Vulnerabilities and Exposures): 컴퓨터 보안 취약점에 대한 국제 참조 시스템입니다. 자세한 정보.
  2. nvd.nist.gov: 컴퓨터 보안 취약점에 대한 참조 데이터베이스입니다. 공식 사이트.
  3. WP_Capabilities: 사용자의 역할과 권한을 관리하는 데 사용되는 WordPress의 직렬화된 속성입니다. WordPress 역할 및 권한 및 사용 방법에 대해 자세히 알아보세요.
  4. 보안 Nonce: CSRF 공격과 같은 특정 형태의 공격을 방지하기 위해 컴퓨터 통신에 사용되는 토큰입니다. 자세한 내용.
  5. WAF(웹 애플리케이션 방화벽): 웹 서버와 인터넷 간의 HTTP 트래픽을 모니터링하고 필터링하는 보안 도구입니다. 심화 학습.
  6. IDS/IPS(침입 탐지/방지 시스템): 악성 활동을 탐지하기 위해 네트워크 또는 시스템을 모니터링하는 장치 또는 애플리케이션입니다. 추가 설명.
  7. CSRF(교차 사이트 요청 위조): 로그인한 사용자가 웹 애플리케이션에서 원치 않는 작업을 실행하도록 강제하는 공격입니다. 자세히 알아보기.

출처

도구 다운로드
위협B1 (사용자 데이터 기밀성)B2 (웹사이트 무결성)B3 (Ultimate Member 플러그인 무결성)
M1 무단 액세스XXX
M2 악성 코드 주입XX
M3 데이터 유출X
M4 평판 손상X
이름링크
NIST CVE-2023-3460https://nvd.nist.gov/vuln/detail/CVE-2023-3460
Ultimate Member Githubhttps://github.com/ultimatemember/ultimatemember
악용에 사용된 패키지 버전 2.6.5https://wordpress.org/plugins/ultimate-member/advanced/
익스플로잇 패치https://github.com/ultimatemember/ultimatemember/commit/fae47c6065ce07e9a8b44501002fa5b4f16d2456
익스플로잇 검토https://thesecmaster.com/how-to-fix-cve-2023-3460-a-privilege-escalation-vulnerability-in-ultimate-member-wordpress-plugin/
OWASP Top 10 애플리케이션 보안 위험https://owasp.org/www-project-top-ten/