Websense ha descubierto (de nuevo) un ataque de inyección SQL masivo. Páginas legítimas están siendo contaminadas, a través de un fallo de inyección SQL, con código que redirige al usuario hacia páginas web que intentan infectarle.
Los atacantes están consiguiendo contaminar páginas web legítimas con código javascript propio y que redirige al visitante a páginas maliciosas. El fallo que están aprovechando para conseguirlo es un problema de inyección SQL sobre sus aplicaciones web. Cabe destacar que, aunque no se trate de un fallo de esta base de datos, se están centrando en las páginas que tienen su infraestructura basada en Microsoft SQL Server. El fallo es de programación, aunque todavía no se conoce exactamente el punto en común de las webs atacadas.
Las páginas maliciosas
El ataque ha sido bautizado como LizaMoon, que fue el primer dominio confirmado que se utilizaba para este ataque. Por ahora, las páginas que insertan en las web legítimas tienen una estructura similar
hxxp://*.*/ur.php
y si se realiza una búsqueda en Google de:
"<script src=http://*/ur.php"
Aparecen más de millón y medio de páginas como resultado. Esto, obviamente, no indica que todas estén infectadas.
Estas páginas "ur.php", a su vez, contienen una redirección a través de document.location a otras que intentan contaminar con un rogueware llamado "Windows Stability Center" al usuario. En VirusTotal, la primera fecha en la que se recibió este rogueware, con md5 815d77f8fca509dde1abeafabed30b65, es el día 31 de marzo, procedente de la India y solamente era detectado por dos motores. Tres días más tarde, es detectado por firmas por 24 de 42 de estos antivirus.
El ataque de inyección SQL
Las páginas que están siendo víctimas de la inyección tienen algún problema en su código (típicamente ASP) que permite, a través de formularios, GET o cualquier otra entrada del usuario, incrustar código SQL. Los atacantes han conseguido así alterar las bases de datos de alguna forma, añadiendo sus scripts. Como la página se nutrirá de algún campo de esa base de datos para mostrarlo en su web, tomará los datos alterados y mostrará el contenido que el atacante haya incrustado.
Para que esto ocurra a gran escala y de forma automática, los atacantes deben utilizar una misma estructura de base de datos (en este caso Microsoft SQL Server) y una aplicación web más o menos común. O en su defecto usar la fuerza bruta para encontrar nombres de campos comunes, por ejemplo.
un ejemplo de sentencia utilizada para realizar la inyección SQL:
Que de forma más legible, quedaría algo así:
Se trata de una actualización mal intencionada de un campo.
No es la primera vez
Hace justo 3 años, en abril de 2008, se vivió una situación muy parecida con más de medio millón de páginas afectadas. Se sufrió un ataque masivo de inyección SQL a webs basadas en Microsoft SQL Server y ASP. Igualmente, introducían código que redirigía a webs que intentaban infectar al visitante. Microsoft tuvo que salir a la palestra a explicar que el fallo no tenía nada que ver con su servidor web sino con una mala programación.
Sergio de los Santos
ssantos@hispasec.com
FUENTE :http://www.hispasec.com/unaaldia/4547