
Laravel-RCE: CVE-2017-9841
Laravel-RCE: CVE-2017-9841
CVE-2017-9841 एक गंभीर रिमोट कोड एक्ज़ीक्यूशन (RCE) कमजोरी है जो PHPUnit लाइब्रेरी को प्रभावित करती है, जिसका उपयोग PHP में स्वचालित परीक्षण के लिए व्यापक रूप से किया जाता है। यह दोष एक हमलावर को सर्वर पर मनमाने कमांड निष्पादित करने की अनुमति देता है यदि वह PHPUnit की एक विशिष्ट फ़ाइल तक पहुँच प्राप्त कर लेता है जो सार्वजनिक रूप से उजागर है।
📌 मुख्य विवरण पहचानकर्ता: CVE-2017-9841 GOOGLE DORK "inurl:"/vendor/phpunit/phpunit/src/Util/PHP/eval-stdin.php" प्रभावित उत्पाद: PHPUnit (घटक phpunit/phpunit) कमजोर संस्करण: 5.6.3 और 4.8.28 से पहले के कमजोरी का प्रकार: रिमोट कोड एक्ज़ीक्यूशन (RCE) प्रभाव: गंभीर – हमलावर को सर्वर पर मनमाना PHP कोड निष्पादित करने की अनुमति देता है।
🔍 कमजोरी कैसे काम करती है समस्या eval-stdin.php फ़ाइल में है, जो यहाँ स्थित है:
/vendor/phpunit/phpunit/src/Util/PHP/eval-stdin.php
(ou em caminhos semelhantes, dependendo da estrutura do projeto).
यह फ़ाइल PHPUnit के आंतरिक उपयोग के लिए डिज़ाइन की गई थी, लेकिन कई इंस्टॉलेशन में यह सार्वजनिक रूप से सुलभ रहती है। इस फ़ाइल का कोड बस मानक इनपुट (php://input) से डेटा पढ़ता है और उसे सीधे eval() फ़ंक्शन के साथ निष्पादित करता है। यानी, इस एंडपॉइंट पर भेजा गया कोई भी POST अनुरोध PHP कोड के रूप में मूल्यांकित किया जाएगा।
शोषण का उदाहरण एक हमलावर कमजोर फ़ाइल पर HTTP POST अनुरोध भेज सकता है, उदाहरण के लिए:
POST /vendor/phpunit/phpunit/src/Util/PHP/eval-stdin.php HTTP/1.1
Host: alvo.com
Content-Type: application/x-www-form-urlencoded
Payload 🛡️ " <?php phpinfo(); ?> "
सर्वर कोड निष्पादित करेगा और आउटपुट लौटाएगा, जो निष्पादन की पुष्टि करता है।
इसके साथ, हमलावर रिवर्स शेल प्राप्त करने, संवेदनशील फ़ाइलें पढ़ने, डेटा संशोधित करने आदि के लिए हमले को बढ़ा सकता है।
🛡️ शमन
📚 अतिरिक्त संदर्भ यह कमजोरी बहुत प्रसिद्ध हो गई क्योंकि कई प्रोजेक्ट अनजाने में vendor निर्देशिका को सार्वजनिक रूप से सुलभ छोड़ देते हैं। चूंकि PHPUnit PHP प्रोजेक्ट्स (Laravel, Symfony आदि फ्रेमवर्क सहित) में एक सामान्य निर्भरता है, आकस्मिक एक्सपोज़र अक्सर होता है। इसलिए, यह स्वचालित सुरक्षा स्कैन में परीक्षण किए जाने वाले पहले वैक्टरों में से एक है।
यदि आप डेवलपर या सिस्टम एडमिनिस्ट्रेटर हैं, तो जाँच करें कि आपकी प्रोडक्शन साइटों में eval-stdin.php फ़ाइल बाहरी रूप से सुलभ नहीं है।