Re: system() y variables de entorno
On 15 Jan 2002, Juan Antonio Martinez wrote:
>
> Normalmente, en lugar de system(), en entornos seguros se utilizan las
> funciones execvp() y familia, donde le puedes pasar como parámetro un
> puntero a la lista de variables de entorno, que TU has previamente
> definido. La verdad es que nadie debería utilizar system() en entornos
> "criticos"
Vale no te entendí. Es que parecía que querías dar a entender que había
alguna forma de usar system controlando el entorno y no te entendía por
esa razón preguntaba. Leete esa respuesta tuya y verás como parecía que
decías eso pero ya está claro.
> No hace falta que el programa al que llamas sea "seguro". El problema
> reside en meter en la línea de comandos datos de las variables de
> entorno que puedan haber sido editados por alguien ajeno a tí. El
> ejemplo del telnetd debería ser suficientemente elocuente
Bueno pues haz un execvp() en un programa setuid llamando a vim,
a ftp, a less, u otros de estos que te permiten salir al interprete
de comandos ejecutando una subshell. Me parece a mi que le puedes
quitar todo el entorno que quieras. Obtendrá una shell de root.
Un saludo
Antonio Castro
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
/\ /\ Ciberdroide Informática (Tienda de Linux)
\\W// <<< http://www.ciberdroide.com >>>
_|0 0|_
+-oOOO--(___o___)--OOOo----------------------------------------------------+
| . . . . U U . . . . Antonio Castro Snurmacher acastro@ciberdroide.com |
| . . . . . . . . . . |
+()()()----------()()()----------------------------------------------------+
| *** 1.700 sitios clasificados por temas sobre Linux en ***Donde_Linux*** |
| <<< http://www.ciberdroide.com/misc/donde/dondelinux.html >>> |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
Reply to: