TL; DR No, non sei sicuro al 100%. O con altre parole, pensaci due volte. ;)
Non eseguire frammenti di codice senza comprendere le basi. Utilizzare man
per saperne di più su un comando o un programma. Usa Google o un altro portale di ricerca se non capisci. E se hai ancora dei dubbi, semplicemente non eseguire il codice.
Ti fidi di me? Quindi eseguire:
man man
Ok, non pericoloso, vedi la man-page di man
Ma per quanto riguarda il codice qui sotto, ti fidi di me?
$(perl -MMIME::Base64 -0777ne 'print decode_base64($_)' <<< "ZWNobyAnQk9PSCEnCg==")
Non? Buona idea. Analizziamo il codice:
perl
L'interprete del linguaggio Perl
-MMIME::Base64
Codifica e decodifica di stringhe base64
-0777ne
-0777
- Cambia il separatore di riga in indefinito, permettendoci di slurpare il file, fornendo tutte le linee a Perl in una volta sola.
-e
- Il flag (di esecuzione) è ciò che ci consente di specificare il codice Perl che vogliamo eseguire direttamente sulla riga di comando.
-n
- Alimenta l'ingresso in Perl riga per riga.
'print decode_base64($_)'
- Decodifica una stringa, la stringa viene salvata in $_
.
"ZWNobyAnQk9PSCEnCg=="
- E questo? Cos'è questo?
Iniziamo un test.
Sappiamo, è qualcosa di simile a base64 e sembra codificato. Pertanto decodifica la stringa con:
base64 --decode <<< "ZWNobyAnQk9PSCEnCg=="
E l'output è ... ok, non molto pericoloso:
echo 'BOOH!'
Ora possiamo fare lo stesso con il perl
perl -MMIME::Base64 -0777ne 'print decode_base64($_)' <<< "ZWNobyAnQk9PSCEnCg=="
E l'output è, che sorpresa:
echo 'BOOH!'
Ma era pericoloso? Questo è pericoloso:
$(…)
Questo costrutto esegue l'output dei comandi tra parentesi tonde.
Proviamo, ti fidi di me?
$(perl -MMIME::Base64 -0777ne 'print decode_base64($_)' <<< "ZWNobyAnQk9PSCEnCg==")
'Booh!'
E di cosa si tratta
c3VkbyBraWxsYWxsIG5hdXRpbHVzCg==
Provalo ... Ti fidi di me?