LFI2RCE via phpinfo()
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
अपने वेब ऐप्स, नेटवर्क और क्लाउड पर एक हैकर का दृष्टिकोण प्राप्त करें
महत्वपूर्ण, शोषण योग्य कमजोरियों को खोजें और रिपोर्ट करें जिनका वास्तविक व्यावसायिक प्रभाव है। हमारे 20+ कस्टम टूल का उपयोग करके हमले की सतह का मानचित्रण करें, सुरक्षा मुद्दों को खोजें जो आपको विशेषाधिकार बढ़ाने की अनुमति देते हैं, और आवश्यक सबूत इकट्ठा करने के लिए स्वचालित शोषण का उपयोग करें, जिससे आपका कठिन काम प्रभावशाली रिपोर्टों में बदल जाए।
इस कमजोरियों का शोषण करने के लिए आपको आवश्यकता है: एक LFI कमजोरी, एक पृष्ठ जहां phpinfo() प्रदर्शित होता है, "file_uploads = on" और सर्वर को "/tmp" निर्देशिका में लिखने में सक्षम होना चाहिए।
https://www.insomniasec.com/downloads/publications/phpinfolfi.py
ट्यूटोरियल HTB: https://www.youtube.com/watch?v=rs4zEwONzzk&t=600s
आपको शोषण को ठीक करने की आवश्यकता है ( => को => में बदलें)। ऐसा करने के लिए आप कर सकते हैं:
You have to change also the payload at the beginning of the exploit (for a php-rev-shell for example), the REQ1 (this should point to the phpinfo page and should have the padding included, i.e.: REQ1="""POST /install.php?mode=phpinfo&a="""+padding+""" HTTP/1.1), and LFIREQ (this should point to the LFI vulnerability, i.e.: LFIREQ="""GET /info?page=%s%%00 HTTP/1.1\r -- Check the double "%" when exploiting null char)
यदि PHP में अपलोड की अनुमति है और आप एक फ़ाइल अपलोड करने की कोशिश करते हैं, तो यह फ़ाइल एक अस्थायी निर्देशिका में संग्रहीत होती है जब तक कि सर्वर अनुरोध को संसाधित नहीं कर लेता, फिर यह अस्थायी फ़ाइल हटा दी जाती है।
फिर, यदि आपने वेब सर्वर में एक LFI भेद्यता पाई है, तो आप अस्थायी फ़ाइल के नाम का अनुमान लगाने की कोशिश कर सकते हैं और इसे हटाने से पहले अस्थायी फ़ाइल तक पहुँचकर RCE का शोषण कर सकते हैं।
Windows में फ़ाइलें आमतौर पर C:\Windows\temp\php में संग्रहीत होती हैं।
linux में फ़ाइल का नाम आमतौर पर random होता है और यह /tmp में स्थित होता है। चूंकि नाम यादृच्छिक है, इसलिए अस्थायी फ़ाइल के नाम को कहीं से निकालना आवश्यक है और इसे हटाने से पहले एक्सेस करना आवश्यक है। यह phpconfig() फ़ंक्शन की सामग्री के भीतर variable $_FILES के मान को पढ़कर किया जा सकता है।
phpinfo()
PHP एक 4096B का बफर का उपयोग करता है और जब यह पूर्ण होता है, तो इसे क्लाइंट को भेजा जाता है। फिर क्लाइंट कई बड़े अनुरोध भेज सकता है (बड़े हेडर का उपयोग करते हुए) एक php रिवर्स शेल अपलोड करते हुए, phpinfo() के पहले भाग के लौटने का इंतजार करें (जहां अस्थायी फ़ाइल का नाम है) और LFI भेद्यता का शोषण करते हुए php सर्वर द्वारा फ़ाइल हटाने से पहले अस्थायी फ़ाइल तक पहुँचने की कोशिश करें।
Python स्क्रिप्ट नाम को ब्रूटफोर्स करने के लिए (यदि लंबाई = 6)
अपने वेब ऐप्स, नेटवर्क और क्लाउड पर एक हैकर का दृष्टिकोण प्राप्त करें
महत्वपूर्ण, शोषण योग्य कमजोरियों को खोजें और रिपोर्ट करें जिनका वास्तविक व्यापार पर प्रभाव है। हमारे 20+ कस्टम टूल का उपयोग करके हमले की सतह का मानचित्रण करें, सुरक्षा मुद्दों को खोजें जो आपको विशेषाधिकार बढ़ाने की अनुमति देते हैं, और आवश्यक सबूत इकट्ठा करने के लिए स्वचालित शोषण का उपयोग करें, जिससे आपका कठिन काम प्रभावशाली रिपोर्टों में बदल जाए।
AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE) GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)