
विस्तृत पेनेट्रेशन टेस्ट रिपोर्ट जो WordPress Simple Backup प्लगइन में बिना प्रमाणीकरण के पाथ ट्रैवर्सल (CVE-2019-11447) का प्रदर्शन करती है, जिसमें शोषण के चरण, प्रभाव विश्लेषण और सुधार मार्गदर्शन शामिल हैं।
| आइटम | विवरण |
|---|---|
| दस्तावेज़ शीर्षक | पेनेट्रेशन टेस्ट रिपोर्ट - WordPress पाथ ट्रैवर्सल |
| क्लाइंट/परीक्षा | HackTheBox Lab - CPTS Exercise 1 |
| दिनांक | 22 अगस्त, 2026 |
| मूल्यांकनकर्ता | Fernando Viana (पेनेट्रेशन टेस्टर) |
| मूल्यांकन प्रकार | ग्रे बॉक्स (बाहरी, कोई क्रेडेंशियल नहीं) |
| लैब वातावरण | 154.57.164.73:30706 |
| लैब अवधि | 1 घंटा |
| उद्देश्य | प्रतिबंधित फ़ाइलों को प्राप्त करने के लिए कमज़ोरियों की पहचान और शोषण |
| प्राप्त फ़्लैग | HTB{my_f1r57_h4ck} |
154.57.164.73:30706 पर होस्ट किए गए वेब एप्लिकेशन के इस पेनेट्रेशन मूल्यांकन के दौरान, एक गंभीर कमज़ोरी की पहचान की गई जो अनधिकृत हमलावरों को सर्वर फ़ाइलसिस्टम से मनमानी फ़ाइलें डाउनलोड और पढ़ने की अनुमति देती है।
कमज़ोर WordPress इंस्टॉलेशन में एक पुराना प्लगइन (Simple Backup v2.7.10) है जिसमें पाथ ट्रैवर्सल कमज़ोरी (CVE-2019-11447) है जो प्रमाणीकरण या प्राधिकरण की आवश्यकता के बिना अनधिकृत फ़ाइल पहुँच की अनुमति देती है।
इस कमज़ोरी का सफलतापूर्वक शोषण करके सर्वर रूट से /flag.txt फ़ाइल प्राप्त की गई, जो गोपनीयता के पूर्ण उल्लंघन की पुष्टि करता है। इस पहुँच वाला हमलावर निम्नलिखित कर सकता है:
wp-config.php, .env) निकालनाइस कमज़ोरी को तत्काल ठीक करने के लिए गंभीर कार्रवाई आवश्यक है, क्योंकि यह डेटा सुरक्षा, गोपनीयता अनुपालन (GDPR, HIPAA, PCI-DSS) और सिस्टम अखंडता के लिए अत्यधिक जोखिम उत्पन्न करती है।
| गंभीरता | संख्या | व्यावसायिक प्रभाव |
|---|---|---|
| 🔴 गंभीर | 1 | पूर्ण गोपनीयता उल्लंघन; अनधिकृत फ़ाइल पहुँच |
| 🟠 उच्च | 0 | — |
| 🟡 मध्यम | 0 | — |
| 🟢 निम्न | 0 | — |
| ℹ️ सूचनात्मक | 1 | पुराने सॉफ़्टवेयर संस्करण पाए गए |
मूल्यांकन प्रकार: ग्रे बॉक्स (बाहरी हमलावर, कोई क्रेडेंशियल प्रदान नहीं किया गया, नेटवर्क पहुँच उपलब्ध)
मूल्यांकन तिथियाँ: 22 अगस्त, 2026
परीक्षण दृष्टिकोण: उद्योग-मानक पेनेट्रेशन टेस्टिंग फ्रेमवर्क (PTES) का पालन करते हुए गैर-चोरी, व्यवस्थित मूल्यांकन:
CVE-2019-11447 | CWE-22: एक प्रतिबंधित निर्देशिका के लिए पथनाम की अनुचित सीमा
WordPress प्लगइन Simple Backup (संस्करण 2.7.10/2.7.11, Exploit-DB 39883) में इसके एडमिन "Backup Manager" पृष्ठ में एक पाथ ट्रैवर्सल कमज़ोरी है। प्लगइन download_backup_file GET पैरामीटर के माध्यम से प्रदान किए गए फ़ाइल पथ को सैनिटाइज़ करने में विफल रहता है, जिससे हमलावर सापेक्ष पथ अनुक्रमों (../) का उपयोग करके इच्छित simple-backup/ निर्देशिका से बाहर जा सकता है और वेब सर्वर प्रक्रिया द्वारा पढ़ने योग्य किसी भी फ़ाइल को डाउनलोड कर सकता है — जिसमें फ़ाइलसिस्टम रूट पर मौजूद फ़ाइलें भी शामिल हैं।
कमज़ोर एंडपॉइंट:
GET /wp-admin/tools.php?page=backup_manager&download_backup_file=../../../../../../../../../../flag.txt
page=backup_manager अनुरोध को प्लगइन के admin page handler में रूट करता है; download_backup_file वह पैरामीटर है जिसे प्लगइन का कोड सीधे पढ़ता है और बिना सत्यापन के फ़ाइलसिस्टम पथ में जोड़ देता है, जिससे directory traversal संभव हो जाता है।
7.5 - HIGH (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N)
गोपनीयता उल्लंघन: ⚠️ CRITICAL
हमलावर वेब सर्वर द्वारा सुलभ किसी भी फ़ाइल को पढ़ सकते हैं, जिनमें शामिल हैं:
| फ़ाइल | प्रभाव | जोखिम स्तर |
|---|---|---|
/wp-config.php | डेटाबेस क्रेडेंशियल, salts, keys | 🔴 CRITICAL |
/.env | API keys, secrets, कॉन्फ़िगरेशन | 🔴 CRITICAL |
/etc/passwd | उपयोगकर्ता गणना, सिस्टम मैपिंग | 🟠 HIGH |
SSH keys (.ssh/id_rsa) | पार्श्व गतिविधि, सिस्टम एक्सेस | 🔴 CRITICAL |
/proc/self/environ | चल रहे एप्लिकेशन के secrets | 🟠 HIGH |
| उपयोगकर्ता अपलोड निर्देशिका | निजी फ़ाइलें, मीडिया | 🟠 HIGH |
नियामक प्रभाव:
Exploit-DB सलाहकार (39883.txt, searchsploit -x के माध्यम से पढ़ा गया — देखें ht4-poc.png) simple-backup-manager.php से प्लगइन के delete प्रिमिटिव का दस्तावेज़ीकरण करता है:
if(array_key_exists('delete_backup_file', $_GET)){
$this->delete_local_backup_file($_GET['delete_backup_file']);
}
$bk_dir = ABSPATH."simple-backup/";
unlink($bk_dir . $filename);
$filename सीधे $_GET['delete_backup_file'] से आता है, बिना किसी basename() या path-containment जाँच के। ../pizza.txt पास करने पर $bk_dir . $filename का मान .../simple-backup/../pizza.txt → .../pizza.txt हो जाता है, जिससे इच्छित backup फ़ोल्डर से बाहर निकल जाता है।
इस engagement में वास्तव में शोषित download primitive (download_backup_file) उसी plugin में ठीक वही unsanitized concatenation pattern अपनाता है, लेकिन फ़ाइल को हटाने के बजाय अनुरोधकर्ता को वापस भेज देता है — जिसके कारण filesystem root से /flag.txt प्राप्त करना संभव हुआ (ABSPATH/simple-backup/ से 10× ../)।
समस्या:
basename() का कोई उपयोग नहींrealpath() ABSPATH."simple-backup/" के भीतर ही रहता हैcurrent_user_can() / authentication जाँच नहीं — handler plugin load पर चलता है, WordPress के अपने wp-admin auth gate से पहले, इसलिए यह बिना लॉग इन किए भी पहुँच योग्य हैब्राउज़र के माध्यम से सीधे लक्ष्य से कनेक्ट किया गया (http://154.57.164.73:30706/)। WordPress इंस्टॉलेशन का शीर्षक "GETTING STARTED" है, और होमपेज पर एक सार्वजनिक ब्लॉग पोस्ट सादे टेक्स्ट में plugin का सटीक नाम और संस्करण प्रकट करती है: "Simple Backup Plugin 2.7.10 for WordPress" — कमज़ोर घटक की पहचान करने के लिए किसी enumeration टूलिंग की आवश्यकता ही नहीं पड़ी।

whatweb http://154.57.164.73:30706/
परिणाम: Apache/2.4.41 (Ubuntu Linux), WordPress 5.6.1 की पुष्टि MetaGenerator और WordPress प्लगइन सिग्नेचर के माध्यम से हुई।

searchsploit simple backup wordpress