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

Sandino Araico Sánchez sandino@sandino.net
Fri, 27 Jun 2003 17:53:16 -0500


Creo que necesitas que tu script llame a setuid(0) antes de llamar a system().

Y que tu perl esté compilado con soporte para setuid.

Sergio Rojas wrote:

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

--
Sandino Araico Sánchez
If you can't bring out the best in people then
how can you bring out the best in your projects?
-- Bryan Dollery http://www.devx.com/DevX/Article/11659