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 [EMAIL PROTECTED] |
| . . . . . . . . . . |
+()()()----------()()()----------------------------------------------------+
| *** 1.700 sitios clasificados por temas sobre Linux en ***Donde_Linux*** |
| <<< http://www.ciberdroide.com/misc/donde/dondelinux.html >>> |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+