
Python PoC로 King Addons for Elementor <= 51.1.36의 CVE-2025-6325 인증되지 않은 권한 상승 및 CVE-2025-6327 임의 파일 업로드 RCE를 검증합니다.
King Addons for Elementor <= 51.1.36을 대상으로 한 연구 및 검증 도구로, 문서화된 두 가지 취약점을 다룹니다:
승인된 보안 테스트, 취약점 연구, 통제된 랩 환경에서만 사용하십시오.
이 프로젝트는 King Addons for Elementor의 두 가지 취약점에 대한 보안 영향을 검증하기 위한 이중 목적 PoC를 제공합니다.
King Addons 등록 기능을 통한 인증되지 않은 권한 상승.
취약한 흐름은 클라이언트가 제어하는 user_role 값을 받아들이고, 적절한 역할 허용 목록을 적용하지 않은 채 WordPress 사용자 생성에 전달합니다.
영향받는 버전: <= 51.1.36
패치된 버전: 51.1.37
취약한 등록 흐름은 다음을 사용합니다:
POST /wp-admin/admin-ajax.php
action=king_addons_user_register
user_role=administrator
PoC는 또한 생성된 계정이 인증하고 WordPress 사용자 관리 페이지에 접근할 수 있는지 검증합니다.
King Addons 폼 빌더 업로드 기능을 통한 인증되지 않은 임의 파일 업로드.
취약한 업로드 핸들러는 PHP 파일을 잘못 수용할 수 있으며, 그 결과 웹에서 접근 가능한 업로드 파일과 잠재적인 서버 측 코드 실행이 발생합니다.
영향받는 버전: <= 51.1.36
패치된 버전: 51.1.37
관련 AJAX 액션은 다음과 같습니다:
POST /wp-admin/admin-ajax.php
action=king_addons_upload_file
PoC는 업로드 흐름을 검증하고 업로드된 테스트 파일이 무해한 id 명령을 실행할 수 있는지 확인합니다.
스크립트는 네 가지 동작 모드를 지원합니다:
check
privesc
upload
both
이 모드들은 명령줄 인터페이스에서 직접 노출됩니다.
Python 3이 필요합니다.
서드파티 Python 패키지는 필요하지 않습니다.
Python 버전을 확인하십시오:
python3 --version
두 가지 취약점 검사를 모두 실행합니다:
python3 exploit.py -u http://target.local --exploit both
익스플로잇 단계를 실행하지 않고 노출된 King Addons nonce를 탐색합니다:
python3 exploit.py -u http://target.local --exploit check
python3 exploit.py -u http://target.local --exploit privesc
python3 exploit.py -u http://target.local --exploit upload
대상 파일을 생성합니다:
http://target1.local
https://target2.local
http://target3.local
주석과 빈 줄은 무시됩니다.
수동적 평가를 실행합니다:
python3 exploit.py -l targets.txt --exploit check
두 검증 단계를 모두 실행합니다:
python3 exploit.py -l targets.txt --exploit both -t 20
업로드 검증을 실행합니다:
python3 exploit.py -l targets.txt --exploit upload -t 20
권한 상승 검증을 실행합니다:
python3 exploit.py -l targets.txt --exploit privesc -t 20
PoC는 두 가지 취약한 흐름에 필요한 nonce를 찾기 위해 대상 페이지를 자동으로 검색합니다.
기본 크롤러 설정:
Depth : 3
Max pages : 80
Timeout : 20 seconds
Threads : 10
이 기본값들은 스크립트의 CLI 구성에 정의되어 있습니다.
예시:
python3 exploit.py \
-l targets.txt \
--exploit both \
-t 20 \
--depth 3 \
--max-pages 80 \
--timeout 20
스크립트는 구조화된 결과에 대해 기본적으로 results.tsv를, 성공적인 검증 항목에 대해 loot.txt를 사용합니다.
실행 중 도구는 여러 상태를 보고합니다.
업로드 검증이 성공했고 테스트 PHP 파일이 검증 요청에 응답했음을 나타냅니다.
예시:
PWNED [SHELL]
권한 상승 검증이 취약한 등록 흐름을 사용하여 계정을 생성했음을 나타냅니다.
도구는 추가로 해당 계정이 WordPress 사용자 관리 페이지에 대해 검증되었는지 기록합니다.
생성된 계정이 성공적으로 인증되었고 WordPress 사용자 페이지에서 확인되었습니다.
등록 요청은 성공했지만, 후속 검증 단계에서 결과 계정을 확인할 수 없었습니다.
성공적인 검증 결과를 얻지 못했습니다.
대상이 네트워크, 파싱, 크롤링 또는 기타 실행 오류를 발생시켰습니다.
구조화된 결과는 TSV로 작성됩니다:
results.tsv
출력에는 다음 필드가 포함됩니다:
target
status
shell_url
shell_rce
priv_user
priv_pwd
priv_verified
err
이 형식은 결과를 스프레드시트로 가져오거나 추가 처리하는 데 유용합니다.
성공적인 검증 항목은 추가로 다음에 작성됩니다:
loot.txt
스크립트는 셸 및 권한 검증 결과를 별도의 항목으로 작성합니다.
Visitor
│
▼
Public King Addons Register Form
│
▼
Nonce discovery
│
▼
king_addons_user_register
│
▼
Client-controlled user_role
│
▼
WordPress user creation
│
▼
Privilege escalation validation
PoC는 구체적으로 다음을 등록 엔드포인트에 제출합니다:
user_role=administrator
Visitor
│
▼
King Addons Form Builder
│
▼
Upload nonce discovery
│
▼
king_addons_upload_file
│
▼
PHP test file upload
│
▼
Uploaded file URL
│
▼
Benign execution verification
PoC는 고유하게 생성된 테스트 파일 이름을 사용하고 반환된 업로드 URL을 확인합니다.
연구 구현은 다음에 대해 테스트되었습니다:
WordPress 6.8 / 7.1
Elementor 4.2.3
King Addons 51.1.14
연구 노트는 통제된 랩 환경에서 권한 상승과 셸 실행을 포함한 두 흐름 모두의 성공적인 검증을 보고합니다. 버전 51.1.37에 대한 음성 대조군도 테스트되었습니다.
연구 노트에 따르면 51.1.35 및 51.1.36에 대한 일부 WordPress.org ZIP 릴리스는 이후 부분 수정으로 재태깅되었습니다.
따라서 취약한 구현은 참조된 SVN 태그 51.1.14를 사용하여 확인되었습니다.
연구를 재현하는 경우, 51.1.35 또는 51.1.36으로 표시된 모든 패키지가 동일한 취약한 코드를 포함한다고 가정하지 말고 연구에서 식별된 정확한 랩 버전과 패키지를 사용하십시오.
이 프로젝트는 다음을 위해 의도되었습니다:
명시적 승인을 받은 시스템만 테스트하십시오.
허가 없이 이 프로젝트를 서드파티 인프라에 사용하지 마십시오.
저자는 무단 접근, 지속성, 데이터 도난 또는 시스템 방해를 권장하지 않습니다.
이 소프트웨어는 보안 연구 및 승인된 테스트 목적으로 제공됩니다.
이 프로젝트의 사용이 적용 가능한 법률, 규정, 계약 및 승인 요구 사항을 준수하도록 보장할 책임은 사용자에게 있습니다.
저자와 기여자는 무단 사용으로 인한 오용, 손해, 서비스 중단, 데이터 손실 또는 기타 결과에 대해 어떠한 책임도 지지 않습니다.
JohenLastGen — JLG NETWORK
Research & Security Tooling
Telegram:
@johenlastgen
Channel:
@jlgnetworkredirect
MIT License
전체 라이선스 텍스트는 LICENSE를 참조하십시오.
| 옵션 | 설명 |
|---|
-u, --url | 단일 대상 URL 테스트 |
-l, --list | 대상 URL이 포함된 파일 |
-e, --exploit | check, privesc, upload, both 중 선택 |
-t, --threads | 동시 작업자 수 |
--depth | 최대 크롤러 링크 깊이 |
--max-pages | 대상당 크롤링할 최대 페이지 수 |
--timeout | HTTP 요청 타임아웃(초) |
-o, --output | TSV 결과 출력 |
--loot | 성공적인 검증 출력 |
--no-color | 터미널 색상 비활성화 |