
PT Project Notebooks 1.0.0 - 1.1.3 - 인증 누락으로 인한 인증되지 않은 권한 상승
PT Project Notebooks 1.0.0 - 1.1.3 - 인증되지 않은 권한 상승을 초래하는 인가 누락
PT Project Notebooks 버전 1.0.0–1.1.3에 대한 PoC 및 익스플로잇 도우미:
wpnb_pto_new_users_add()함수의 인가 누락으로 인해 인증되지 않은 공격자가admin-ajax.php를 통해 선택한 사용자의 권한을 관리자로 상승시킬 수 있습니다.
WordPress용 PT Project Notebooks 플러그인은 버전 1.0.0부터 1.1.3까지의 wpnb_pto_new_users_add() 함수에서 인가가 누락되어 권한 상승에 취약합니다. 이로 인해 인증되지 않은 공격자가 지정된 사용자 ID에 대해 관리자 수준으로 권한을 상승시킬 수 있습니다.
wp-content/plugins/project-notebooks/readme.txt를 읽고 Stable tag를 추출하여 대상이 1.1.3 이하인지 확인합니다.custom.nonce와 custom.ajax_url을 추출합니다 (wp_localize_script를 통해).nonce, ids=<UserID>, user_type=2와 함께 action=wpnb_pto_new_users_add를 포함한 POST 요청을 admin-ajax.php로 전송하여 모든 관리자 권한을 대상 사용자에게 복사합니다.wp_verify_nonce()가 성공하려면 일치하는 wordpress_logged_in_* 쿠키를 전달해야 합니다.python3 CVE-2025-5304.py -u "http://TARGET/wordpress" -id 28
python3 CVE-2025-5304.py -u "http://TARGET/wordpress" -id 28 -c "wordpress_logged_in_...=..."
CVE-2025-5304.py -help
usage: t.py [-h] -u URL -id ID [-c COOKIE] [--skip-version]
CVE-2025-5304 (Nxploited Edition)
options:
-h, --help show this help message and exit
-u, --url URL Target WordPress site URL (e.g. http://127.0.0.1/wordpress)
-id, --id ID User ID to escalate (e.g. 28)
-c, --cookie COOKIE Optional Cookie header value for session-bound nonces
--skip-version Skip readme.txt version check
-u / --url — 기본 사이트 URL; 도구가 이를 정규화하고 플러그인 readme와 메인 페이지를 읽습니다.-id / --id — 권한을 상승시킬 WordPress 숫자 사용자 ID (구독자도 충분함).-c / --cookie — nonce가 세션에 종속된 경우 필요한 전체 Cookie 헤더 값 (예: wordpress_logged_in_*=...).--skip-version — readme.txt Stable 태그 확인을 건너뜁니다 (readme가 숨겨져 있거나 사용자 정의된 경우 유용함).Nonce 및 쿠키 참고 사항
custom.nonce가 시크릿/비공개 창에서도 보인다면 공개된 것이므로 쿠키가 필요하지 않습니다.-c 옵션으로 동일한 wordpress_logged_in_* 쿠키를 전달해야 합니다.custom.ajax_url (스킴/호스트/포트/경로)을 사용해야 합니다.이 저장소, PoC 및 코드는 교육 및 승인된 보안 테스트 목적으로만 제공됩니다. 대상에 대한 명시적 테스트 허가를 받는 것은 전적으로 귀하의 책임입니다. 작성자는 이 프로젝트의 사용으로 인한 오용 또는 손해에 대해 어떠한 책임도 지지 않습니다.
작성자: Khaled Alenazi (Nxploited)