[Perl] Re: [Ayuda] Scripts "ahora en perl" con Setuid 0

Sergio Rojas srojas@ifc.unam.mx
Fri, 27 Jun 2003 17:36:33 -0500


Ok! ... ya puse lo que queria dentro de un cgi escrito en perl, que 
tiene como propietario root,
permisos de ejecucion y setuid. El script es el siguiente (se llama 
cgi.pl ):

--------------------------------------
#!/usr/bin/perl

print "Content-type: text/html
<body> Hi there! </body>";

system("/usr/sbin/adduser hsimpson");
------------------------------------------------

lo ejectuto desde http://www/cgi-bin/cgi.pl y el  error_log de apache me 
manda:

"Premature end of script headers: /var/www/cgi-bin/cgi.pl Can't do setuid"

Que sugieren? ....

Gracias .. Totalees! (sorry por el crossposting a perl@tlali)

Sergio Rojas.


Sandino Araico Sánchez wrote:

>El problema es adquirir los permisos de superusuario.
>
>Si fuera un CGI con setuid propiedad de root si funcionaría, pero una vez
>que ya eres root dentro del cgi ya no necesitas a PHP; desde un cgi escrito
>en C puedes hacer system("/bin/touch /root/kkformphp.txt");
>
>Mejor todavía, desde PHP puedes llamar a tu cgi que se hace setuid=0
>
><?php
>    system(mi-gci-que-se-hace-setuid-0.cgi);
>?>
>
>
>después de compilarlo:
>chown root programita.cgi
>chmod u+s programita.cgi
>
>Sergio Rojas wrote:
>
>  
>
>>Hi Everyone!
>>
>>Caso para la ara~na :
>>
>>Quiero ejecutar el siguiente script de php como usuario mortal, se que
>>lo que tendria que hacer es
>>
>>$chown root miarchivo
>>$chmod u+s mi archivo
>>
>>Para que cuando lo ejecute como mortal, realmente se ejecute como root y
>>pueda crear el archivo:
>>
>>--------------------
>><?php
>>system("/bin/touch /root/kkformphp.txt");
>>?>
>>------------------
>>-----------------------------
>>$php escriberoot.php
>>/bin/touch: creating `/root/kkformphp.txt': Permission denied
>>X-Powered-By: PHP/4.1.2
>>Content-type: text/html
>>-------------------------------
>>
>>Y por supuesto no crea le archivo. He estado leyendo, y se necesita un
>>wrapper para poder hacer esto,
>>alguien me podria explicar con manzanas porque? .. si fuera un CGI si
>>funcionaria?
>>
>>    
>>