¡Tu mensaje de bienvenida, twitter o publicidad aquí!

| Suscríbete vía RSS

20 abr 2010

Sobre cómo no hacer las cosas

| |

Cuando se descube un fallo en algún sitio, y normalmente ha sido por un error en la programación, si tiras de ese fino hilo poco a poco acabarás por descubrir más fallos.

Algo similar es lo que ha ocurrido con la página que comentaba líneas más abajo, donde el servicio que ofrecían para recomendar la página a nuestros contactos, podía ser utilizado para realizar un poco de spam.

Mientras navegaba por ella observe que la dirección url se presentaba de la siguiente forma:


http://xxxx/yyyy/zzzz.php?$sesion_idioma=1&$menu=1&identifica=participa&nombrexml=104

Ahí había algo que no me cuadraba... eso de $sesion_idioma, $menu, me hace pensar que de alguna forma las variables del código no están siendo filtradas y que las muestra directamente en la barra de direcciones, y probablemente el valor que estas tomen se verá reflejado de alguna forma en el código fuente de la página y con ello el valor que le demos.

Una prueba nos sacará de dudas:


http://xxxx/yyyy/zzzz.php?$sesion_idioma='&$menu=1&identifica=participa&nombrexml=104

Mirando el contenido de la página notamos que ha cambiado, eso me indica que en cierta manera, lo que pase a los parámetros de la url se verá reflejado en el contenido de esta. Pero vamos hacer otra prueba más, y comprobemos si en el código hay alguna parte donde se haga referencia a esto.



Vamos que estábamos en lo cierto y cualquier cosa que coloquemos en las variables se reflejará en el código fuente. Intentemos ejecutar directamente código PHP en cualquiera de las variables, si todo funciona y teníamos razón conseguiremos que en aquellos lugares del código fuente donde se reflejen los valores pasados a las variables se sustituya por el resultado devuelto de la ejecución de nuestra instrucción.

Vamos a probar con lo siguiente:



Simplemente vamos a tratar de realizar una inyección de código, que una vez interpretada por el servidor nos devolverá lo siguiente:


Parece que alguien no ha hecho la tarea bien en más de una ocasión.

0 comentarios: