*************************************************************************************************
Serialized SQL Injection (Parte I de VI)
Serialized SQL Injection (Parte II de VI)
Serialized SQL Injection (Parte III de VI)
Serialized SQL Injection (Parte IV de VI)
Serialized SQL Injection (Parte V de VI)
Serialized SQL Injection (Parte VI de VI)
*************************************************************************************************
Automatización
Una vez vistas las formas en las que es posible extraer un gran conjunto de información en una única columna mediante serialización XML, la automatización es bastante sencilla. Al ser obtenidos los datos en XML es cómodo asociar los datos recibidos a un componente que los procese en un cómodo interfaz gráfico.
Trabajando sobre la base de Marathon Tool, de la que está disponible el código fuente, es fácil adaptar la herramienta para que funcione con los tres motores de bases de datos analizados.
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCPLG6U5Z53EiEnFVfA9HmpEFmhQvgeP4lYRHCB_xkHdORMzfBYERWZmOwD2EPW3GMpQ04S9cUbs9rQEgHZPFJWgQln-ANmCt7rRM6JlNOWKs7vs8tCcVJ97a46543NrIHLXLB/s280/Imagen_21.jpg)
Configuración de la inyección
Una vez configurada la inyección, extraer la estructura de la base de datos sería realizar una consulta para obtener la lista de los nombres de las tablas creadas en esa base de datos o esquema.
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhKZEByRXj-1GYxvdlUz12Op_8CHRkL1MOQcUFbFPcX-_M7dSIhcR5xHM1gZ8J9Gztn2-oQUGL1RzH3HCBc0ZZ0D-rVStkDKq1TQ1S5Sp-cu-ybq8LG157_IbER5RtB9Ag1XYmS/s280/Imagen_22.jpg)
Estructura del esquema Oracle
Una vez obtenidas las tablas, se puede extraer la lista de registros con una consulta si es Microsoft SQL Server o con dos si es una base de datos Oracle o MySQL. Para estas dos bases de datos se necesita realizar primero una consulta para conocer los campos de la tabla y la segunda para extraer los datos de la misma. En Microsoft SQL Server no es necesario puesto que hay soporte para el comodín *.
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjTJ7D6dSLEcuknpH3aAjVaoxZOKiOOGIA0MVBgLsiyxHAgsH0h-4LEnCl3iFDLXv9OiYpVnPHSe0sEqUpgDXVa6XOdZ9eWLXG930vgp7iPm4DXB-ygd0MTwjwCjwnuQfEsSYv9/s280/Imagen_23.jpg)
Datos de la tabla extraidos
Como se puede ver, en un entorno Oracle como el de las capturas, son necesarias tres inyecciones para sacar todos los datos de una tabla.
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgbZUWXzWL69n5Mw2goCjyQe3Vc8X59s_aG6izkfpOT07_JI7g9jvEGbWSr4iOAO3tVhr9PS4TRgjz8RWmOqEIiXhQFwGT1thg9UBY7XRAXWbrLJhakXeK50oS3xWc-iK4QrWsa/s280/Imagen_24.jpg)
Log de inyecciones necesarias
Referencias
Daniel Kachakil publicó SFX-SQLi con soporte para Microsoft SQL Server 2005 y 2008. La herramienta está publicada en la siguiente URL [http://www.kachakil.com/papers/SFX-SQLi-es.htm] junto con el código fuente y un paper en español e inglés sobre cómo utilizar las inyecciones For XML.
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPCxghSr4pHuq54w6epUBUDyDRSefHm153P2pV87Rnb32yH-HnDwdFrT5vi5Y8pk1QNchXs3CCvBznJ9MPyVgWMOgsw1Ys0svd6TMfVugVAxS1aydao33vPlCxV8LRVt4jX60M/s280/Imagen_25.jpg)
SFX SQLi
La referencia a For XML puede ser encontrada con todos los matices en la biblioteca de MSDN: http://msdn.microsoft.com/en-us/library/ms345137.aspx
La presentación que utilizamos Palako y yo en la ShmooCon dónde se recoge un sumario de Serialized SQL Injection está disponible en la siguiente URL: Re-Playing with SQL Injection.
Alex Kornbrust explicó su método para inyecciones Oracle serializadas en un post en su blog en la siguiente URL: http://blog.red-database-security.com/2009/02/08/new-sql-injection-whitepaper-for-sql-server/
Marathon Tool está disponible en la siguiente URL: http://www.codeplex.com/marathontool
*************************************************************************************************
Serialized SQL Injection (Parte I de VI)
Serialized SQL Injection (Parte II de VI)
Serialized SQL Injection (Parte III de VI)
Serialized SQL Injection (Parte IV de VI)
Serialized SQL Injection (Parte V de VI)
Serialized SQL Injection (Parte VI de VI)
*************************************************************************************************
Serialized SQL Injection (Parte I de VI)
Serialized SQL Injection (Parte II de VI)
Serialized SQL Injection (Parte III de VI)
Serialized SQL Injection (Parte IV de VI)
Serialized SQL Injection (Parte V de VI)
Serialized SQL Injection (Parte VI de VI)
*************************************************************************************************
Automatización
Una vez vistas las formas en las que es posible extraer un gran conjunto de información en una única columna mediante serialización XML, la automatización es bastante sencilla. Al ser obtenidos los datos en XML es cómodo asociar los datos recibidos a un componente que los procese en un cómodo interfaz gráfico.
Trabajando sobre la base de Marathon Tool, de la que está disponible el código fuente, es fácil adaptar la herramienta para que funcione con los tres motores de bases de datos analizados.
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCPLG6U5Z53EiEnFVfA9HmpEFmhQvgeP4lYRHCB_xkHdORMzfBYERWZmOwD2EPW3GMpQ04S9cUbs9rQEgHZPFJWgQln-ANmCt7rRM6JlNOWKs7vs8tCcVJ97a46543NrIHLXLB/s280/Imagen_21.jpg)
Configuración de la inyección
Una vez configurada la inyección, extraer la estructura de la base de datos sería realizar una consulta para obtener la lista de los nombres de las tablas creadas en esa base de datos o esquema.
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhKZEByRXj-1GYxvdlUz12Op_8CHRkL1MOQcUFbFPcX-_M7dSIhcR5xHM1gZ8J9Gztn2-oQUGL1RzH3HCBc0ZZ0D-rVStkDKq1TQ1S5Sp-cu-ybq8LG157_IbER5RtB9Ag1XYmS/s280/Imagen_22.jpg)
Estructura del esquema Oracle
Una vez obtenidas las tablas, se puede extraer la lista de registros con una consulta si es Microsoft SQL Server o con dos si es una base de datos Oracle o MySQL. Para estas dos bases de datos se necesita realizar primero una consulta para conocer los campos de la tabla y la segunda para extraer los datos de la misma. En Microsoft SQL Server no es necesario puesto que hay soporte para el comodín *.
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjTJ7D6dSLEcuknpH3aAjVaoxZOKiOOGIA0MVBgLsiyxHAgsH0h-4LEnCl3iFDLXv9OiYpVnPHSe0sEqUpgDXVa6XOdZ9eWLXG930vgp7iPm4DXB-ygd0MTwjwCjwnuQfEsSYv9/s280/Imagen_23.jpg)
Datos de la tabla extraidos
Como se puede ver, en un entorno Oracle como el de las capturas, son necesarias tres inyecciones para sacar todos los datos de una tabla.
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgbZUWXzWL69n5Mw2goCjyQe3Vc8X59s_aG6izkfpOT07_JI7g9jvEGbWSr4iOAO3tVhr9PS4TRgjz8RWmOqEIiXhQFwGT1thg9UBY7XRAXWbrLJhakXeK50oS3xWc-iK4QrWsa/s280/Imagen_24.jpg)
Log de inyecciones necesarias
Referencias
Daniel Kachakil publicó SFX-SQLi con soporte para Microsoft SQL Server 2005 y 2008. La herramienta está publicada en la siguiente URL [http://www.kachakil.com/papers/SFX-SQLi-es.htm] junto con el código fuente y un paper en español e inglés sobre cómo utilizar las inyecciones For XML.
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPCxghSr4pHuq54w6epUBUDyDRSefHm153P2pV87Rnb32yH-HnDwdFrT5vi5Y8pk1QNchXs3CCvBznJ9MPyVgWMOgsw1Ys0svd6TMfVugVAxS1aydao33vPlCxV8LRVt4jX60M/s280/Imagen_25.jpg)
SFX SQLi
La referencia a For XML puede ser encontrada con todos los matices en la biblioteca de MSDN: http://msdn.microsoft.com/en-us/library/ms345137.aspx
La presentación que utilizamos Palako y yo en la ShmooCon dónde se recoge un sumario de Serialized SQL Injection está disponible en la siguiente URL: Re-Playing with SQL Injection.
Alex Kornbrust explicó su método para inyecciones Oracle serializadas en un post en su blog en la siguiente URL: http://blog.red-database-security.com/2009/02/08/new-sql-injection-whitepaper-for-sql-server/
Marathon Tool está disponible en la siguiente URL: http://www.codeplex.com/marathontool
*************************************************************************************************
Serialized SQL Injection (Parte I de VI)
Serialized SQL Injection (Parte II de VI)
Serialized SQL Injection (Parte III de VI)
Serialized SQL Injection (Parte IV de VI)
Serialized SQL Injection (Parte V de VI)
Serialized SQL Injection (Parte VI de VI)
*************************************************************************************************
Felicidades por el documento.
ResponderEliminarEnhorabuena has finalizado tremendo material, mis saludos!
ResponderEliminarFelicidades por la serie de posts chema, aunque suene a tópico ya me lo he guardao a buen recaudo y cuando saque tiempo... (someday, snif)
ResponderEliminarNo se quien pondría las descripciones de las tablas jajajaja pero vaya cachondo...
Saludos!
Wi®
Graxis chema y grax por darte tiempo ente tu vida atareada(estudio,descontrol, vida nocturnas,novia,amantes,joda,...)
ResponderEliminary por mostrar tus servicios a la gente mortal......
Arigato......