[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: system() y variables de entorno



El mar, 15-01-2002 a las 13:44, Antonio Castro escribió:

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

No he mirado el código fuente, pero qué quieres que te diga:
[jantonio@drake ~]$ su -
[root@drake root]#  cp /usr/bin/vim /tmp/vim 
[root@drake root]# chmod u+s /tmp/vim
[root@drake root]# exit
[jantonio@drake ~]$ /tmp/vim kk
ejecuto :!id 
y obtengo 
uid=500(jantonio) gid=500(jantonio) grupos=500(jantonio)

Pasa lo mismo con el less: al abrir una shell el real y el effective
userid no corresponden a root, por mucho que el padre sea setuid root
espera un momentito... idem con el ftp

Claro, esto es en mi distribución RedHat 7.2....

O sea que el programa está bien codificado :)

-- 
        Juan Antonio          \|||/
                             / _ _ \
                             \ o o /
=========================o00o===U===o00o======================================
Juan Antonio Martinez               Universidad Politecnica de Madrid
email: jantonio@dit.upm.es          E.T.S.I Telecomunicacion
http://www.dit.upm.es/~jantonio     Ciudad Universitaria s/n
Tel:   34-1-3367366 ext 416         Laboratorio de Programación. Desp
A-127-2
Fax:   34-1-3367333                 28040 Madrid, Spain
==============================================================================
¿Y que haríais si Dios os Dijera: "Os ordeno que, por encima de todo, 
seáis felices el resto de vuestra vida"?  - Richard Bach

Attachment: pgpSBg31vap4r.pgp
Description: PGP signature


Reply to: