kartoffelheinz
New Member
Hallo,
ich habe ein kleines Sicherheitsproblem mit meinem Test-Webserver festgestellt.
Konfiguration:
Apache 2.2.3
SuExec2
auf Debian Etch
Wenn ich über "AddHandler cgi-script .pl" *.pl-Scripten die Möglichkeit gebe, als CGI-Script ausgeführt zu werden, gebe ich dem Skript gleichzeitig auch die Möglichkeit, nicht nur #!/usr/bin/perl als Interpreter, sondern auch #!/bin/sh oder #!/bin/bash usw. zu nutzen. Auch ohne dass der User eine Shell hat sind anscheinend Dinge wie
möglich.
Sollte klar sein, dass ich das nicht will. Gibt es eine Möglichkeit, dem Apache irgendwie bevor er das Script an die entsprechende Binary weiterleitet die erste Zeile zu entfernen und z.b. bei *.pl immer #!/usr/bin/perl -w hinzusetzen? Oder kennt jemand eine andere Lösung? Ich würde es auch gerne über einen Wrapper laufen lassen, aber dafür müsste ich das dem Apache irgendwie mitteilen (wie?).
Schonmal Danke und Grüße
Florian
ich habe ein kleines Sicherheitsproblem mit meinem Test-Webserver festgestellt.
Konfiguration:
Apache 2.2.3
SuExec2
auf Debian Etch
Wenn ich über "AddHandler cgi-script .pl" *.pl-Scripten die Möglichkeit gebe, als CGI-Script ausgeführt zu werden, gebe ich dem Skript gleichzeitig auch die Möglichkeit, nicht nur #!/usr/bin/perl als Interpreter, sondern auch #!/bin/sh oder #!/bin/bash usw. zu nutzen. Auch ohne dass der User eine Shell hat sind anscheinend Dinge wie
Code:
#!/bin/sh
px -aux >> /eine/datei/zu/der/user/schreibrechte hat.txt
ls -al /etc >> /noch/eine/datei/mit/schreibrechten.txt
Sollte klar sein, dass ich das nicht will. Gibt es eine Möglichkeit, dem Apache irgendwie bevor er das Script an die entsprechende Binary weiterleitet die erste Zeile zu entfernen und z.b. bei *.pl immer #!/usr/bin/perl -w hinzusetzen? Oder kennt jemand eine andere Lösung? Ich würde es auch gerne über einen Wrapper laufen lassen, aber dafür müsste ich das dem Apache irgendwie mitteilen (wie?).
Schonmal Danke und Grüße
Florian