TL; DR Hayır,% 100 güvende değilsiniz. Veya başka bir deyişle, iki kere düşünün. ;)
Temel bilgileri anlamadan kod parçacıklarını çalıştırmayın. man
Bir komut veya program hakkında daha fazla bilgi edinmek için kullanın . Anlamıyorsanız Google'ı veya başka bir arama portalını kullanın. Ve hala şüphe duyuyorsanız, sadece kodu çalıştırmayın.
Bana güveniyor musun? O zaman koş:
man man
Tamam, tehlikeli değil, man-sayfasını görüyorsunuz. man
Peki ya aşağıdaki kod, bana güveniyor musunuz?
$(perl -MMIME::Base64 -0777ne 'print decode_base64($_)' <<< "ZWNobyAnQk9PSCEnCg==")
Değil? İyi bir fikir. Hadi kodu kıralım:
perl
Perl dili tercümanı
-MMIME::Base64
Base64 dizelerinin kodlanması ve kodlarının çözülmesi
-0777ne
-0777
- Satır ayırıcısını undef olarak değiştirir, dosyayı sıkıştırmamıza izin verir, tüm satırları tek seferde Perl'e besler.
-e
- (execute) flag komut satırı üzerinde çalıştırmak istediğimiz Perl kodunu belirtmemize izin verir.
-n
- Girişi Perl satır satır satır besleyin.
'print decode_base64($_)'
- Dize kod çözer, dizge kaydedilir $_
.
"ZWNobyAnQk9PSCEnCg=="
- Ve bu? Bu nedir?
Bir test başlayalım.
Biliyoruz ki, base64 gibi bir şey ve kodlanmış gibi görünüyor. Bu nedenle, dizenin kodunu çöz:
base64 --decode <<< "ZWNobyAnQk9PSCEnCg=="
Ve çıktı… tamam, gerçekten tehlikeli değil:
echo 'BOOH!'
Şimdi aynısını perl ile yapabiliriz.
perl -MMIME::Base64 -0777ne 'print decode_base64($_)' <<< "ZWNobyAnQk9PSCEnCg=="
Ve çıktı şu ki, ne sürpriz:
echo 'BOOH!'
Ama tehlikeli miydi? Bu tehlikeli:
$(…)
Bu yapı, komutların çıktısını yuvarlak parantez içinde yürütür.
Hadi deneyelim, bana güveniyor musunuz?
$(perl -MMIME::Base64 -0777ne 'print decode_base64($_)' <<< "ZWNobyAnQk9PSCEnCg==")
'BOOH!'
Ve ne hakkında
c3VkbyBraWxsYWxsIG5hdXRpbHVzCg==
Deneyin… Bana güveniyor musunuz?