Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]11623[/thread]

Datei verschieben im Taint-Modus? (Seite 2)



<< |< 1 2 >| >> 11 Einträge, 2 Seiten
betterworld
 2008-04-12 21:04
#108283 #108283
User since
2003-08-21
2614 Artikel
ModeratorIn

user image
sid burn+2008-04-12 18:43:26--
Und wenn dein Skript noch mit Root Rechten läuft und von einem unpriviligierten Benutzer ausgeführt werden kann, hast du den Salat.


Das gilt nur fuer setuid-Script oder fuer solche, die mit sudo ausgefuehrt werden koennen.

Ich schrieb in meinem Beitrag ja auch "jedenfalls bei einem CGI-Script".

Man muss halt wissen, unter welchen Bedingungen etwas ausgefuehrt wird.

Naja, und die Loesung, die vorgeschlagen wurde, ist, dass man DOCUMENT_ROOT irgendwie auf unerlaubte Sonderzeichen ueberprueft (und das noch nicht mal auf eine sichere Weise.. denn so, wie Sina reagiert hat, hat sie meinen Einwand mit $1 nicht verstanden). Und wenn also keine komischen Sonderzeichen in DOCUMENT_ROOT drin sind, wird es als vertrauenswuerdig eingestuft. Das hilft mir ungefaehr ueberhaupt nichts, wenn das Script dann doch unter sudo ausgefuehrt wird, denn dann kann da jedes noch so unvertrauenswuerdige Verzeichnis drin stehen. Entweder ich lasse Verzeichnisse ueber die Umgebung angeben oder nicht. Bei CGI ist das eher unproblematisch, bei setuid-Scripten sollte man es nicht tun. Untainten hilft aber in keinem der beiden Faelle.

In einem CGI-Script will und muss und kann ich manchen Sachen einfach trauen. PATH wird vom Serveradmin gesetzt, und ob das nun ein guter oder schlechter Pfad ist, muss er sich selbst ueberlegen. Dass ich PATH umstaendlich untainten muss, bevor ich externe Programme in einem CGI-Script aufrufe, hilft der Sicherheit ueberhaupt nichts und macht den Code nur unuebersichtlicher. Wahrscheinlich fuegt es sogar hin und wieder Bugs ein.
<< |< 1 2 >| >> 11 Einträge, 2 Seiten



View all threads created 2008-04-11 23:49.