Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
wp2shell-PoC — CVE-2026-63030 और CVE-2026-60137 RCE श्रृंखला प्रूफ-ऑफ-कॉन्सेप्ट | Kitploit
उपकरण/GitHubGitHub/sowarma/wp2shell-poc
भेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणडेटा निष्कासनपोस्ट-शोषणवेब सुरक्षापेनिट्रेशन टेस्टिंगलर्निंग और शिक्षाAPI सुरक्षा
GitHubsowarma/wp2shell-poc

wp2shell-PoC

CVE-2026-63030 और CVE-2026-60137 RCE श्रृंखला प्रूफ-ऑफ-कॉन्सेप्ट

351237 दिन पहलेअभी तक समीक्षित नहीं

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें
रिपॉजिटरी देखें

wp2shell-PoC

⚠ यह उपकरण केवल शैक्षिक या बग बाउंटी उद्देश्य के लिए बनाया गया है। नियंत्रित वातावरण के बाहर अनधिकृत उपयोग सख्त वर्जित है।

अवलोकन

WordPress Core को प्रभावित करने वाली wp2shell भेद्यता श्रृंखला के लिए proof-of-concept, जो CVE-2026-63030 और CVE-2026-60137 को जोड़ती है। यह परियोजना REST API Batch route confusion भेद्यता और WP_Query SQL injection के बीच की अंतःक्रिया को प्रदर्शित करती है, जिसके परिणामस्वरूप WordPress के पूर्ण समझौते और रिमोट कोड निष्पादन (RCE) के लिए एक प्रमाणीकरण-रहित मार्ग बनता है।

पूरी एडवाइजरी यहाँ पढ़ें

यह कैसे काम करता है

wp2shell WordPress core में एक प्री-प्रमाणीकरण RCE श्रृंखला है, जो CVE-2026-63030 (batch REST endpoint में route confusion) और CVE-2026-60137 (WP_Query में SQL injection) को जोड़ती है।

Route confusion: /wp-json/batch/v1 स्थिति-अनुक्रमित समानांतर $matches और $validation सरणियों के माध्यम से कई उप-अनुरोधों को संसाधित करता है। एक malformed पथ (जैसे, http://:) वाला उप-अनुरोध continue कथन के कारण $validation में तो जोड़ा जाता है लेकिन $matches में नहीं, जिससे सरणियाँ desynchronize हो जाती हैं। बाद के अनुरोधों को अगले अनुरोध के लिए निर्धारित हैंडलर के अंतर्गत भेजा जाता है, जिससे schema validation और permission checks बायपास हो जाते हैं।

SQL injection: दो नेस्टेड batch कॉल इसका शोषण करती हैं। बाहरी batch method allow-list (सामान्यतः GET को अवरुद्ध करने वाली) को बायपास करता है। आंतरिक batch GET /wp/v2/posts को एक scalar author_exclude स्ट्रिंग पहुँचाता है — desync इसे validation से आगे भेज देता है, और WP_Query बिना sanitize किए स्ट्रिंग को सीधे SQL में डाल देता है, जिससे UNION-आधारित blind injection उत्पन्न होती है।

Cache poisoning: SQLi जाली WP_Post ऑब्जेक्ट लौटाता है, जिन्हें WordPress मेमोरी में कैश करता है। इन नकली posts में [embed] shortcodes होते हैं जो WordPress को नकली references से वास्तविक oembed_cache डेटाबेस पंक्तियाँ बनाने के लिए प्रेरित करते हैं।

Changeset escalation: SQLi का उपयोग करके, हमलावर अपनी JSON में "user_id": 1 के साथ एक customize_changeset post को मेमोरी में जाली बनाता है। एक cycle-detection gadget post_content को अधिलेखित किए बिना wp_update_post() को ट्रिगर करता है, जिससे हमलावर का payload सुरक्षित रहता है। Changeset लागू करने पर अस्थायी रूप से व्यवस्थापक की पहचान मान ली जाती है।

Hook re-entry: parse स्थिति और request प्रकार वाली एक निर्मित post parse_request hook को सक्रिय करती है, जो मान ली गई admin भूमिका के साथ पूरे batch अनुरोध को दोबारा चलाती है। इस बार, एक POST /wp/v2/users उप-अनुरोध सफल हो जाता है, जिससे एक नया admin खाता बन जाता है।

Code execution: हमलावर बनाए गए admin के रूप में लॉगिन करता है और मनमाने कमांड चलाने के लिए एक दुर्भावनापूर्ण plugin अपलोड करता है।

प्रभावित संस्करण

संस्करणस्थिति
WordPress 6.9.0 – 6.9.4असुरक्षित
WordPress 7.0.0 – 7.0.1असुरक्षित
WordPress 6.9.5सुधारित
WordPress 7.0.2+सुधारित

उपयोग

इस PoC का उपयोग करने के लिए, एकमात्र आवश्यकता Python 3.8+ है।

भेद्यता जाँच करने के लिए इसे रिपॉजिटरी निर्देशिका से चलाएँ:

root@kitploit:~
wp2shell.py http://victim.com

जाँच मोड (डिफ़ॉल्ट)

एकल भेद्यता जाँच करता है। एक हानिरहित batch marker probe भेजता है जो SQLi payload निष्पादित किए बिना route confusion बग का पता लगाता है। एक असुरक्षित लक्ष्य parse_path_failed, block_cannot_read, और rest_batch_not_allowed त्रुटि पैटर्न के साथ HTTP 207 लौटाता है।

एक सक्रिय SQLi पुष्टिकरण payload भेजने के लिए --confirm-sqli का उपयोग करें। पुष्टिकरण पहले UNION reflection का प्रयास करता है, फिर timing-आधारित probes पर वापस आ जाता है।

एकल लक्ष्य की जाँच करें (डिफ़ॉल्ट मोड)

root@kitploit:~
wp2shell.py http://target.com

स्पष्ट मोड के साथ जाँच करें

root@kitploit:~
Check with explicit mode
wp2shell.py http://target.com --check

SQLi पुष्टिकरण के साथ जाँच करें

root@kitploit:~
wp2shell.py http://target.com --check --confirm-sqli

रीड मोड - SQL Injection के माध्यम से डेटा निकालें

प्री-प्रमाणीकरण SQL injection का उपयोग करके डेटाबेस से डेटा निकालता है। डिफ़ॉल्ट रूप से --technique auto का उपयोग करता है, जो उपलब्ध विधियों को इस क्रम में आज़माता है:

  • union - UNION के माध्यम से एक जाली WP_Post पंक्ति बनाता है और उसका शीर्षक REST प्रतिक्रिया से ||HEX(value)|| के रूप में वापस पढ़ता है। प्रति मान एक अनुरोध। सबसे तेज़।
  • error - प्रति अनुरोध ~15 बाइट्स लीक करने के लिए EXTRACTVALUE/UPDATEXML का उपयोग करता है। तब काम करता है जब लक्ष्य MySQL त्रुटियों को प्रतिबिंबित करता है (जैसे, WP_DEBUG_DISPLAY चालू हो)।
  • blind - boolean बाइनरी खोज, प्रति वर्ण ~8 अनुरोध। X-WP-Total हेडर को true/false संकेत के रूप में पढ़ता है। तब भी काम करता है जब कोई डेटा प्रतिबिंबित नहीं होता।

--technique union|error|blind के साथ किसी विशिष्ट तकनीक को बाध्य करें। ये रीड पथ केवल-पढ़ने के लिए हैं और डेटाबेस में लेखन नहीं करते हैं।

सर्वर फिंगरप्रिंट (डिफ़ॉल्ट क्वेरी)

root@kitploit:~
wp2shell.py http://target.com --read

लॉगिन और पासवर्ड हैश डंप करें

root@kitploit:~
wp2shell.py http://target.com --read --preset users

कस्टम SQL क्वेरी

root@kitploit:~
wp2shell.py http://target.com --read --query "SELECT @@version"

ब्लाइंड तकनीक को बाध्य करें

root@kitploit:~
wp2shell.py http://target.com --read --technique blind --query "SELECT user_login FROM wp_users LIMIT 1"

त्रुटि-आधारित तकनीक के साथ निष्कर्षण

root@kitploit:~
wp2shell.py http://target.com --read --technique error --query "SELECT user_pass FROM wp_users LIMIT 1"

शेल मोड

लक्ष्य सर्वर पर कमांड निष्पादित करता है। दो मोड में काम करता है:

क्रेडेंशियल के साथ (मौजूदा admin के रूप में लॉगिन करता है और plugin शेल अपलोड करता है):

विशिष्ट कमांड निष्पादित करें

root@kitploit:~
wp2shell.py http://target.com --shell --user admin --password '<recovered>' --cmd id

इंटरैक्टिव शेल

root@kitploit:~
wp2shell.py http://target.com --shell --user admin --password '<recovered>' --interactive
Without credentials (pre-auth RCE - runs the full SQLi→admin bridge, logs in as generated admin, then uploads plugin shell):

एकल कमांड निष्पादित करें

root@kitploit:~
wp2shell.py http://target.com --shell --cmd id

इंटरैक्टिव शेल

root@kitploit:~
wp2shell.py http://target.com --shell --interactive

plugin वेबशेल को एक यादृच्छिक पथ और प्रति-रन टोकन के साथ अपलोड किया जाता है। अपलोड किया गया वेबशेल स्वचालित रूप से हटा दिया जाता है। जब प्री-प्रमाणीकरण ब्रिज एक व्यवस्थापक बनाता है, तो शेल सत्र समाप्त होने के बाद वह जनरेट किया गया खाता स्वचालित रूप से हटा दिया जाता है।

सभी फ्लैग की सूची:

संदर्भ:

  1. https://slcyber.io/research-center/exploit-brokers-pay-500000-for-a-wordpress-rce-i-found-one-with-gpt5-6/
  2. https://www.picussecurity.com/resource/blog/cve-2026-63030-and-cve-2026-60137-wp2shell-wordpress-rce-explained

अस्वीकरण

यह उपकरण केवल शैक्षिक या बग बाउंटी उद्देश्य के लिए बनाया गया है। नियंत्रित वातावरण के बाहर अनधिकृत उपयोग सख्त वर्जित है।

टूल डाउनलोड करें
फ्लैगविवरण
--checkभेद्यता जाँच चलाएँ (यदि कोई अन्य मोड निर्दिष्ट नहीं है तो डिफ़ॉल्ट मोड)
--readSQL injection के माध्यम से डेटा निकालें
--shellसर्वर पर कमांड निष्पादित करें
--queryरीड मोड के लिए कस्टम SQL क्वेरी
--presetपूर्वनिर्धारित क्वेरी प्रीसेट (users, config, versions)
--techniqueSQLi निष्कर्षण तकनीक: union, error, blind, या auto (डिफ़ॉल्ट)
--confirm-sqliजाँच के बाद SQLi पुष्टिकरण payload भेजें
--cmdशेल मोड में निष्पादित करने के लिए कमांड (डिफ़ॉल्ट: id)
--interactive, -iइंटरैक्टिव शेल मोड
--userप्रमाणित शेल के लिए व्यवस्थापक उपयोगकर्ता नाम
--passwordप्रमाणित शेल के लिए व्यवस्थापक पासवर्ड
--proxyHTTP/HTTPS प्रॉक्सी (जैसे, http://127.0.0.1:8080)
--timeoutअनुरोध टाइमआउट सेकंड में (डिफ़ॉल्ट: 30)
--verbose, -vविस्तृत आउटपुट