Inyeccionessqlparaaprendices complemento clase 1

51
Inyecciones SQL para Aprendices Inyección SQL

description

Inyeccionessqlparaaprendices complemento clase 1

Transcript of Inyeccionessqlparaaprendices complemento clase 1

Page 1: Inyeccionessqlparaaprendices complemento clase 1

Inyecciones SQL para AprendicesInyección SQL

Page 2: Inyeccionessqlparaaprendices complemento clase 1

Inyecciones SQL para Aprendices

En esta ocasión vamos a aprender a Hacer un Inyección SQL y posteriormente Defacear Un web!

Page 3: Inyeccionessqlparaaprendices complemento clase 1

Inyecciones SQL para Aprendices

Bueno el deface o defacing es comprender los errores de las web’s, o de los foros, el deface se puedes usar de dos maneras:

1. Deface tipo lamer, el cual consiste en dejar un mensaje en el index o modificarlo, por ejemplo: soy tu padre o algún mensaje de ese estilo.

2. Deface de un buen hacker, el termino buen hacker no quiere decir que sea buena la persona si no que si ve errores o bug’s inmediatamente los reportara al administrador de como es que supo del bug y como se puede explotar, puede que te den las gracias por avisarles o asta te den algo cambio.

En que consiste un deface: bueno el deface es buscar vulnerabilidades de una web o un foro y explotar esos bug, muchas veces una persona hace un deface por gusto y muchas veces va dirigido al index,ya que es la pagina principal donde todos podrán ver lo que a hecho esta persona.

Reflexión: Muchas veces a un webmaster le cuesta trabajo crear una web o publicarla, para que llegue una persona y la defacee y le deshaga todo el trabajo que le costo al webmaster. No te gustaría que hicieran eso cierto?. Asi que respeta para que te respeten.

Page 4: Inyeccionessqlparaaprendices complemento clase 1

Inyecciones SQL para Aprendices

Ojo! Esto es de cuidado! Esto es ilegal, en cualquier momento puedes llegar a la cárcel por un delito Informático

Bueno ya pasando las recomendaciones Dadas empecemos!

Bueno lo primero que deben saber es que es una Inyección SQL! (Busca en San Google! Ahí tienes toda la información!) Aquí un breve definición:

Inyección SQL: es un método de infiltración de código intruso que se vale de una vulnerabilidad informática presente en una aplicación en el nivel de validación de las entradas para realizar consultas a una base de datos.

Page 5: Inyeccionessqlparaaprendices complemento clase 1

Inyecciones SQL para Aprendices

El origen de la vulnerabilidad radica en el incorrecto chequeo y/o filtrado de las variables utilizadas en un programa que contiene, o bien genera, código SQL. Es, de hecho, un error de una clase más general de vulnerabilidades que puede ocurrir en cualquier lenguaje de programación o script que esté embebido dentro de otro.

Se conoce como Inyección SQL, indistintamente, al tipo de vulnerabilidad, al método de infiltración, al hecho de incrustar código SQL intruso y a la porción de código incrustado.

Page 6: Inyeccionessqlparaaprendices complemento clase 1

Inyecciones SQL para Aprendices

Segundo La Seguridad!:

Como siempre he dicho! Para todo clase de Hack! Es mejor usar algún Proxy SSL O algún VPN! Recomiendo mejor los vpn entre ellos están:

RaptorVPN

Hay otros mas.. pero este tutorial no es de seguridad y protección.

Vean el tuto siguiente. (Seguridad y Protección)

Page 7: Inyeccionessqlparaaprendices complemento clase 1

Inyecciones SQL para Aprendices

Tercero: Herramientas

Las herramientas que vamos a usar son:

Havij

(Descargar: http://www.itsecteam.com/products/havij-v116-advanced-sql-injection/ ). Havij es una herramienta que nos facilitará la explotación de vulnerabilidades de inyección SQL en aplicaciones web. Rápidamente podremos hacer un fingerprint de la base de datos, obtener los usuarios y los hashes de sus contraseñas, dumpear tablas y columnas, volcar datos, ejecutar sentencias SQL e incluso acceder al sistema de ficheros y ejecutar comandos en el sistema operativo.

Les recomiendo probar la versión 1.15 free que, aunque tiene algunas limitaciones, seguro que nos resultará útil y nos dará una idea de su facilidad de uso.

Page 8: Inyeccionessqlparaaprendices complemento clase 1

Inyecciones SQL para Aprendices

WebCruiser o Acunetix

Download: http://sec4app.com/download/WebCruiserPro.zip

El escaner WebCruiser es una herramienta para tareas de evaluación de seguridad de sitios Web. Tiene tres versiones, Profesional y Enterprise que son de paga y una Free Edition gratuita para amateurs con algunas funcionalidades reducidas.

Page 9: Inyeccionessqlparaaprendices complemento clase 1

Inyecciones SQL para Aprendices

¿Qué es WebCruiser?:

Un escaner de vulnerabilidades Web;

Un escaner de Inyección SQL;

Un escaner de XSS (Cross Site Scripting);

Un escaner de Inyección XPath;

Una herramienta de Inyección SQL automática de pruebas de concepto (POC);

Una herramienta de XSS (POC);

Una herramienta de Inyección XPath (POC);

Una herramienta de reenvío de Post Data;

Page 10: Inyeccionessqlparaaprendices complemento clase 1

Inyecciones SQL para Aprendices

¿Cuales son sus funcionalidades?:

Crawler (directorios y archivos de sitios web);

Escaner de Vulnerabilidades(SQL Injection, Cross Site Scripting, XPath Injection etc.);

POC(Pruebas de Concepto): SQL Injection, Cross Site Scripting, XPath Injection etc.;

Inyección GET/Post/Cookie;

SQL Server: Texto Plano/Campo Reflejado(Union)/Inyección Ciega;

MySQL/Oracle/DB2/Access: Campo Reflejado(Union)/Inyección Ciega;

Verificación automática de tipo de base de datos;

Búsqueda de Administración de Entrada;

Inyecciones de búsquedas con retardo de tiempo;

Auto obtención de Cookie de navegador Web para autenticación;

Salida de informes.

Page 11: Inyeccionessqlparaaprendices complemento clase 1

Inyecciones SQL para Aprendices

¿Cuales son sus funcionalidades?:

Crawler (directorios y archivos de sitios web);

Escaner de Vulnerabilidades(SQL Injection, Cross Site Scripting, XPath Injection etc.);

POC(Pruebas de Concepto): SQL Injection, Cross Site Scripting, XPath Injection etc.;

Inyección GET/Post/Cookie;

SQL Server: Texto Plano/Campo Reflejado(Union)/Inyección Ciega;

MySQL/Oracle/DB2/Access: Campo Reflejado(Union)/Inyección Ciega;

Verificación automática de tipo de base de datos;

Búsqueda de Administración de Entrada;

Inyecciones de búsquedas con retardo de tiempo;

Auto obtención de Cookie de navegador Web para autenticación;

Salida de informes.

Page 12: Inyeccionessqlparaaprendices complemento clase 1

Inyecciones SQL para Aprendices

Actualmente está disponible y se puede descargar cualquiera de las tres versiones, las versiones de paga se pueden probar por 30 días.

Page 13: Inyeccionessqlparaaprendices complemento clase 1

Inyecciones SQL para Aprendices

Cualquiera VPN O PROXY Confiable.

Recordemos que un VPN es una red privada virtual o VPN (siglas en inglés de virtual private network), es una tecnología de red que permite una extensión de la red local sobre una red pública o no controlada, como por ejemplo Internet.

Realmente una VPN no es más que una estructura de red corporativa implantada sobre una red de recursos de carácter público, pero que utiliza el mismo sistema de gestión y las mismas políticas de acceso que se usan en las redes privadas, al fin y al cabo no es más que la creación en una red pública de un entorno de carácter confidencial y privado que permitirá trabajar al usuario como si estuviera en su misma red local.

Page 14: Inyeccionessqlparaaprendices complemento clase 1

Inyecciones SQL para Aprendices

Y por ultimo el bloc de notas.

Page 15: Inyeccionessqlparaaprendices complemento clase 1

Inyecciones SQL para Aprendices

Cuarta: La Web Vulnerable:Bueno aquí en este tutorial yo ya tengo una web vulnerable!

Ustedes pueden hacer la prueba con esta web:

http://www.nuddos.com

En la internet existe. Muchísimas paginas vulnerables! Pero como esta ya ha sido hackeada entonces, usemos en este tuto no profundizare para buscar Web vulnerables pero aquí unas técnicas para encontrarlas:Abrir www.google.com En búsquedas pones:.php?id=*.php?id=.asp?id=

Page 16: Inyeccionessqlparaaprendices complemento clase 1

Inyecciones SQL para Aprendices

Esos son los dock mas buscados para hackear hay muchos mas! Y si le metes un poco de lógica encuentras otros métodos mas!.Nota: No todas las paginas que salgan ahí son vulnerables!Pero como identificar una web Vulnerable? Es fácil eh ahí donde empieza a trabajar el WebCruiser o Acunetix en este caso

Usaremos webCruiser

Recordemos que WebCroiser es un scanner de vulnerabilidades y explota las mismas.

Page 17: Inyeccionessqlparaaprendices complemento clase 1

Inyecciones SQL para Aprendices

Aquí un ejemplo de su funcionamiento:La pagina a escanear será: www.nuddos.com

Page 18: Inyeccionessqlparaaprendices complemento clase 1

Inyecciones SQL para Aprendices

Page 19: Inyeccionessqlparaaprendices complemento clase 1

Inyecciones SQL para Aprendices

Le damos clic en Scanner:

Page 20: Inyeccionessqlparaaprendices complemento clase 1

Inyecciones SQL para Aprendices

Page 21: Inyeccionessqlparaaprendices complemento clase 1

Inyecciones SQL para Aprendices

Luego le damos clic en: Scan SiteY damos aceptar.Ahora debemos esperar unos 2 a 10 mins el programa escaneara y verificara la pagina y sus vulnerabilidades se irán mostrando poco a poco y si no tiene pues no aparecerá nada. Hay que volver intentar con otra pagina, en este caso encontramos:

Page 22: Inyeccionessqlparaaprendices complemento clase 1

Inyecciones SQL para Aprendices

Page 23: Inyeccionessqlparaaprendices complemento clase 1

Inyecciones SQL para Aprendices

2 Inyecciones SQLYo Escogeré la url de (URL SQL Inyección)Para escogerla solo debes dar clic derecho y dar clic en copiar url (Copy Url a Clipboard)En este caso es:

http://www.nuddos.com/blog.php?id=336

Como Pueden notar: el final de la pagina es: .php?id=Ahora que tenemos la vulnerabilidad encontrada vamos aHavij 1.50 Pro

Page 24: Inyeccionessqlparaaprendices complemento clase 1

Inyecciones SQL para Aprendices

Este es un programa que automatiza la inyección SQL, con solo copiar la url vulnerable el hará el trabajo por ti La Inyección SQL se puede hacer de tipo manual pero es mas complicado. Aquí les enseñare a usar el havij:

Page 25: Inyeccionessqlparaaprendices complemento clase 1

Inyecciones SQL para Aprendices

Page 26: Inyeccionessqlparaaprendices complemento clase 1

Inyecciones SQL para Aprendices

Ahí como pueden ver ya copie y pegue la url en el objetivo ahora le damos clic en:Antes de usar la herramienta vamos a configuraciones y lo configuramos para que la inyección tenga mas éxito!Aquí una foto de como dejarlo configurado (cada vez que vayas a usar el Havij que no se te olvide configurarlo:

Page 27: Inyeccionessqlparaaprendices complemento clase 1

Inyecciones SQL para Aprendices

Page 28: Inyeccionessqlparaaprendices complemento clase 1

Inyecciones SQL para Aprendices

En proxy colocas una IP PROXY Rápida y confiable!Ahora después de haber puesta la configuración ahora vamos y damos en el botón:Analyze

Y esperamos los resultados:Si es Scan nos sale así o mas o menos parecido:

Page 29: Inyeccionessqlparaaprendices complemento clase 1

Inyecciones SQL para Aprendices

Page 30: Inyeccionessqlparaaprendices complemento clase 1

Inyecciones SQL para Aprendices

Eso significa que la Inyección SQL va Por buen camino esperemos el resto del scan.Ya termino y debería aparecer algo como esto:

Page 31: Inyeccionessqlparaaprendices complemento clase 1

Inyecciones SQL para Aprendices

Ahí hemos encontrado y entrado a su base de datos de llama:NuddosAhora nos vamos a Info:

Page 32: Inyeccionessqlparaaprendices complemento clase 1

Inyecciones SQL para Aprendices

Page 33: Inyeccionessqlparaaprendices complemento clase 1

Inyecciones SQL para Aprendices

Y le damos en GETAhí el programa buscara toda la información acerca de la base de datos.(Este paso es Opcional)Esperemos que termine el scan.Ahora tenemos mas información sobre la base de datos:

Page 34: Inyeccionessqlparaaprendices complemento clase 1

Inyecciones SQL para Aprendices

Y le damos en GETAhí el programa buscara toda la información acerca de la base de datos.(Este paso es Opcional)Esperemos que termine el scan.Ahora tenemos mas información sobre la base de datos:

Page 35: Inyeccionessqlparaaprendices complemento clase 1

Inyecciones SQL para Aprendices

Page 36: Inyeccionessqlparaaprendices complemento clase 1

Inyecciones SQL para Aprendices

Ahora pasamos a Tables

Page 37: Inyeccionessqlparaaprendices complemento clase 1

Inyecciones SQL para Aprendices

Si hiciste el paso anterior te saldra la base de datos (Information_schema) Ahí se almacena la información de la base de datos en donde va tal cosa. (Busca en San Google Mas Información)Bueno seguimos:Ahora seleccionamos a la base de datos nuddosY Le damos GET TABLES.

Page 38: Inyeccionessqlparaaprendices complemento clase 1

Inyecciones SQL para Aprendices

Si hiciste el paso anterior te saldra la base de datos (Information_schema) Ahí se almacena la información de la base de datos en donde va tal cosa. (Busca en San Google Mas Información)Bueno seguimos:Ahora seleccionamos a la base de datos nuddosY Le damos GET TABLES.

Automáticamente se nos desplegara un cantidad de tablas.

Page 39: Inyeccionessqlparaaprendices complemento clase 1

Inyecciones SQL para Aprendices

Si hiciste el paso anterior te saldra la base de datos (Information_schema) Ahí se almacena la información de la base de datos en donde va tal cosa. (Busca en San Google Mas Información)Bueno seguimos:Ahora seleccionamos a la base de datos nuddosY Le damos GET TABLES.

Automáticamente se nos desplegara un cantidad de tablas.

Page 40: Inyeccionessqlparaaprendices complemento clase 1

Inyecciones SQL para Aprendices

Page 41: Inyeccionessqlparaaprendices complemento clase 1

Inyecciones SQL para Aprendices

En este caso Es rápido la inyección pero hay casos que la Base de datos esta protegida y obtenemos las tablas una por una.Eso lleva su tiempo!Bueno seguimos…Ahora debemos ir en busca de los usuarios o admin o lo que sea relacionado con usuarios. Usa la mente y ponla a trabajar, si en caso no encuentras tablas con esos nombres pues has perdido tu tiempo. O no puedes sacar información valiosa de la pagina que hallas encontrado.En este caso yo mirare las columnas de Usuarios y gestina_administradores

Las selecciona y le das click en:Get columns.Y Esperamos a que termine su trabajo.En este caso me genero en gestina_administradores:

Page 42: Inyeccionessqlparaaprendices complemento clase 1

Inyecciones SQL para Aprendices

Page 43: Inyeccionessqlparaaprendices complemento clase 1

Inyecciones SQL para Aprendices

Y usuarios:

Page 44: Inyeccionessqlparaaprendices complemento clase 1

Inyecciones SQL para Aprendices

Pero nosotros vamos por administrador!Así que miraremos primero los datos de administradores.Así que seleccionamos:

Page 45: Inyeccionessqlparaaprendices complemento clase 1

Inyecciones SQL para Aprendices

Y ahora le damos: GET DATAGet data:En este caso solo hay un solo administrador:

Page 46: Inyeccionessqlparaaprendices complemento clase 1

Inyecciones SQL para Aprendices

Page 47: Inyeccionessqlparaaprendices complemento clase 1

Inyecciones SQL para Aprendices

Ahora podemos guardar la información con el botón Save dataY se guardara como .HTMLY su password no esta encryptado en MD5! Cosa que nos facilita el trabajo!Si estuviese encryptado teníamos que desecryptarlo! Y nos llevaría mas tiempo!.

Page 48: Inyeccionessqlparaaprendices complemento clase 1

Inyecciones SQL para Aprendices

Con estos datos Podemos defacear una web! O si no eres malvado habla con el administrador y que arregle el problema de la base de datos!.Ya para despedirnos vamos a buscar su panel de administracion para entrar como administrador:Nos vamos a: Find Admin

Page 49: Inyeccionessqlparaaprendices complemento clase 1

Inyecciones SQL para Aprendices

Page 50: Inyeccionessqlparaaprendices complemento clase 1

Inyecciones SQL para Aprendices

Y le damos START y como siempre esperemos que haga su trabajo! PD: Hay veces que no sale el panel de administración hay que localizarlo de otra manera.Aquí los resultados:

Page 51: Inyeccionessqlparaaprendices complemento clase 1

Inyecciones SQL para Aprendices