Hola a todos en el foro:
Resulta que tengo un CGI en Perl que usa GET y no esta validando el input del usuario. Estoy investigando como incrementar su seguridad ya que no lo he desarrollado yo, sin embargo lo estoy editando para implementar nuevas funcionalidades. Tiene la forma de:
http://servidor/cgi-bin/script.cgi?usuario=juan&otroinput=
Lo cual hara es buscar el usuario pedro en los logs con ayuda del comando grep dentro de la un exec de perl. Al intentar modificar los parametros en el GET de la siguiente forma:
http://servidor/cgi-bin/script.cgi?usuario=juan';touch prueba.txt;&otroinput=
Veo que el parametro usuario esta siendo interpretado dentro del script CGI como:
juan%27;touch%20prueba.txt;
Por tanto no es derivado al exec de manera limpia. Hay alguna forma de que esto represente un riesgo de seguridad y finalmente poder pasar limpiamente al exec la ejecucion de mas comandos?
Gracias!
Resulta que tengo un CGI en Perl que usa GET y no esta validando el input del usuario. Estoy investigando como incrementar su seguridad ya que no lo he desarrollado yo, sin embargo lo estoy editando para implementar nuevas funcionalidades. Tiene la forma de:
http://servidor/cgi-bin/script.cgi?usuario=juan&otroinput=
Lo cual hara es buscar el usuario pedro en los logs con ayuda del comando grep dentro de la un exec de perl. Al intentar modificar los parametros en el GET de la siguiente forma:
http://servidor/cgi-bin/script.cgi?usuario=juan';touch prueba.txt;&otroinput=
Veo que el parametro usuario esta siendo interpretado dentro del script CGI como:
juan%27;touch%20prueba.txt;
Por tanto no es derivado al exec de manera limpia. Hay alguna forma de que esto represente un riesgo de seguridad y finalmente poder pasar limpiamente al exec la ejecucion de mas comandos?
Gracias!