Bernd Obermayr
Der User gibt also einmal blablabla ein, klickt auf senden und sieht den POST-String wie er an den Server gesendet wird. Nun braucht er nur nochmal das Formular aufrufen, diesmal gibt er aber direkt die URL ein, bzw aendert die vorherige:
Nachdem das CGI ja als root laeuft... schoene Kacke.
Wo ist denn da das genaue Problem? Ein Aufruf von script.cgi mit Parametern ";" nächster Befehl ist IMHO immer gleichbedeutend, unabhängig, ob das script suid-root ist oder nicht! Was passiert bei "command1 ; command2"? command1 wird ausgeführt command2 wird ausgeführt. Wenn command1 suid ist, dann ändert sich der User trotzdem nicht für command2! (Wäre ja schön, denn dann könnte ich ja immer "mount irgendwas ; command2" machen :) ) Und es ist egal, ob dieses Kommando nun via Webserver aufgerufen wird oder irgend wie anders. Dies zeigt aber die generelle Problematik bei CGI und PHP und sonstwas Scripten. Diese können von überall jederzeit aufgerufen werden. Es ist trivial, z.B. ein Webfrontend zu umgehen (Wie es Bernd schön aufgezeigt hatte!). Ein Grund, warum man die Anzahl der Scripte so gering wie möglich halten sollte und man durchaus die Scripte gut checken sollte! Mit den besten Grüßen, Konrad Neitzel -- SoftMediaTec GmbH Tel: 0172 / 689 31 45 Fax: 069 / 90 50 99 53