SFX-SQLi (Select For XML SQL injection) es una nueva técnica de inyección SQL que permite extraer toda la información de una base de datos de Microsoft SQL Server 2005/2008 de una forma extremadamente rápida y eficiente.
Esta técnica se basa en el uso de la cláusula FOR XML, capaz de convertir el contenido de una tabla en una única cadena de texto, de forma que se pueda anexar su contenido en algún campo inyectando una subconsulta en una entrada vulnerable de una aplicación web.
SFX-SQLi Paper Descripción detallada de los fundamentos de la técnica y de su funcionamientoPara demostrar la potencia de esta técnica en la práctica, se ha desarrollado una herramienta que la implementa. Esta herramienta puede descargarse desde aquí, al igual que su código fuente, para fines exclusivamente académicos.
ACTUALIZACIÓN (28/03/2010): Además de una aplicación web para pruebas, se publica una nueva revisón de la herramienta que corrige algunos errores, permite acceder a otras bases de datos del servidor y ejecutar consultas personalizadas, entre otras pequeñas mejoras:
SFX-SQLi Tool (ejecutable) Herramienta que automatiza el proceso (requiere Microsoft .NET Framework 2.0) - v1.1AVISO: El uso de este software implica la aceptación de este acuerdo de licencia. Este software está destinado exclusivamente para su uso personal. No está permitida su modificación ni su uso comercial. El software se proporciona "tal cual", sin garantías de ningún tipo, expresas ni implícitas, incluidas, sin limitarse a ellas, las garantías de comerciabilidad, de adecuación para un fin determinado y de no infracción de derechos de terceros. En ningún caso será el autor de esta obra responsable de ninguna reclamación ni de ningún daño indirecto ni consecuente, ni de ningún otro daño que resulte de la pérdida de capacidad de uso, de datos o de beneficios, ya sea en una acción contractual, negligencia u otra acción malintencionada, que surja del uso o rendimiento de este software o que esté relacionado con ello.
Ante cualquier duda, sugerencia o propuesta relacionada con este tema, puedes ponerte en contacto conmigo por correo electrónico:
Daniel Kachakil (dani@kachakil.com)