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 >>>            |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+


Responder a