El día de hoy para mi sorpresa en uno de los sitios en el cual yo administro el servidor, la base de datos específicamente en el contenido de los artículos, les habían sobre escrito con links hacia esta pagina:
http://9i5t.cn/a.js
Al parecer al entrar a esa pagina alguien usando Internet Explorer se puede contagiar de un virus, yo la verdad preferí no probar :-), pero un amigo entro, y el Mcafee Viruscan le detecto que unos virus habían sido bajados a los archivos temporales del Internet explorer y que los virus los habia elminado. Si entran a la pagina (cosa que no recomiendo si están utilizando Internet Explorer) con mozilla, les saldrá un código de la siguiente manera:
OlOlll=”(x)”;OllOlO=” String”;OlllOO=”tion”;OlOllO=
“Code(x)}”;OllOOO=”Char”;OlllOl=”func”;OllllO=” l =
“;OllOOl=”.from”;OllOll=”{return”;Olllll=”var”;
Al buscar en google la palabra http://9i5t.cn/a.js encontré que 220,000 paginas infectadas (aproximadamente), estaban indexadas.
Despues de investigar note que estos hackers chinos estaban utilizando una vulnerabilidad llamada SQL Injection (que no es vieja), con la cual lograban ejecutar comandos en el servidor de sql (ya que por lo general el servicio de sql correo como administrador) y de esta manera lograban actualizar las tablas con la dirección a su pagina. Y lo único que necesitaban era que el puerto 80 (http) estuviera abierto al publico, cosa que todos los sitios lo tienen abierto. Incluso el servidor, que es un Windows 2003 server, tenia todas las actualizaciones al día, y aun así se vio afectado.
Después de hacer unas pruebas, encontré que el sitio era vulnerable a este tipo de comandos.
Por ejemplo en la pagina siguiente:
http://www.sitio.com/categorias/hola.asp?id=277763
Mostraba un articulo completo.
Pero al ponerle el siguiente comando:
http://www.sitio.com/categorias/hola.asp?id=2762‘ or 1=1–
Al ejecutar esto, Microsoft Sql, desplegaba el contenido del articulo con id 2762 y TODA la tabla, esto lo hacia internamente, no lo desplegaba en el navegador. Al hacer esto el servidor se saturaba, y ya no mostraba la pagina. Así que claramente el sitio era vulnerable. Si yo pude ejecutar esto imagínense el sin numero de comandos que alguien familiar con Microsoft SQL podia ejecutar.
Una solución rápida que se le dio a este error, fue modificando el asp, para que solo aceptara números en el string del id, esto se hizo de la siguiente manera:
id_cont = trim(request(”hola”))
if not isnumeric(id_cont) then
response.Redirect(”http://www.sitio.com”)
response.End()
end if
Esto se agrego dentro de la programacion del .asp.
Con esto, al momento que alguien trate de ejecutar algo, lo va a redireccionar a la pagina.
http://www.sitio.com/categorias/hola.asp?id=2762‘ or 1=1–
Al poner esto en el navegador, con este cambio en el asp, automaticamente redireccionaba a la pagina principal, que era www.sitio.com.
Me imagino que hay otro tipo de soluciones para esto, pero esta fue la que nos ayudo en nuestro caso.
Les recomiendo esta herramienta para revisar sitios muy grandes. O que contienen muchos archivos asp.
Este programa corre en linux, y sirve de mucho para probar sitios grandes. Necesitan instalar ruby para que corra este programa.
Tiene un sin numero de opciones, las cuales pueden leer mas aca:
Les deseo mucha suerte a los sysadmin, ya que todo el tiempo nuestros servidores estan expuestos a este tipo de vulnerabilidades.
Posted under Bases De Datos
This post was written by admin on Mayo 27, 2008
