Está en la página 1de 9

SEMILLERO

Departamento de Ingeniería de Sistemas e Industrial


DE INVESTIGACIÓN
Facultad de Ingeniería
UQBAR Sede Bogotá
[2018]

Elaborado por:
Semillero de Práctica No. 1
investigación
Uqbar Hacking de Aplicaciones web

1. DESCRIPCIÓN
1.1. Introducción
La pagina bWAPP ofrece una aplicación web con diferentes ejercicios de entrenamiento en hacking web, el objetivo de
esta práctica es orientar en el desarrollo de algunos de estos retos, fortaleciendo y evaluando las competencias adquiridas
a lo largo del semillero.

2. EQUIPOS Y MATERIALES
Para el desarrollo de esta práctica de laboratorio se requiere:

Computador con cualquier sistema operativo, navegador, con acceso a la red de la Universidad Nacional de Colombia.
Las practicas más avanzadas requieren herramientas especiales que viene pre-instaladas en ambientes de auditoria
de aplicaciones WEB, tales como: Kalilinux, BackBox y Samurai WTF Web Testing Framework.

3. PROCEDIMIENTO
3.1. Acceso al aplicativo
Por medio del navegador ingrese a la siguiente dirección: http://168.176.56.43/bWAPP/portal.php . Una vez en
el portal cree una cuenta de usuario desde el menu Create User.

3.2. Asignación de vulnerabilidades


Para el desarrollo de la práctica, se deben organizar en grupos de dos personas, a cada grupo se le asignará una vulnera-
bilidad, está deberá ser resuelta en un tiempo no mayor a 45 minutos.

3.3. Exposición del desarrollo


Al finalizar la práctica cada grupo deberá exponer el procedimiento realizado para aprovecharse de la vulnerabilidad
asignada, así como los problemas que se tuvieron durante el desarrollo de la práctica.

1
SEMILLERO
Departamento de Ingeniería de Sistemas e Industrial
DE INVESTIGACIÓN
Facultad de Ingeniería
UQBAR Sede Bogotá
[2018]

Figura 1: Pantalla inicio de sesión.

3.4. Lista de vulnerabilidades


Esta lista de vulnerabilidades esta basada en el top 10 de OWASP, que es el proyecto abierto de seguridad en aplicaciones
Web, y en las vulnerabilidades que permite explotar el aplicativo.
1. Injection.
Esta vulnerabilidad consiste en la infiltración de código SQL intruso, que permiten algunos sitios web a través de la
interfaz de validación, lo cual permite alterar el código que maneja la base de datos y así modificar su funcionamiento
a favor del intruso.

Para reconocer está vulnerabilidad generalmente se usa el apostrofe ””, el cual puede dar cierre al espacio generado
para almacenar el usuario; es decir que si se intenta ingresar con un ”” como usuario, el sistema imprimirá en pantalla
un aviso de error dando a conocer que es vulnerable.
A continuación se muestra un ejemplo guía para explotar esta vulnerabilidad.

A) Para iniciar, primero se debe seleccionar la vulnerabilidad, que para este caso es SQL injection - Blind - Boolean
Based.

2
SEMILLERO
Departamento de Ingeniería de Sistemas e Industrial
DE INVESTIGACIÓN
Facultad de Ingeniería
UQBAR Sede Bogotá
[2018]

Figura 2: Boolean Based.

B) En este caso se va a inyectar código SQL a través del campo que dispone la página para buscar películas, para ello
primero se debe encontrar una película que esté en la base de datos con prueba y error.

Figura 3: Encontrar caso verdadero.

C) Una vez se encuentra un caso verdadero, se procede a inyectar el código, en este caso se optó por usar iron man’
AND length(database())=1# el cual ingresa el titulo de la película, cierra con comilla simple el string para luego
dar una orden con la cual se puede extraer información de la base de datos y al final comenta el código posterior.

3
SEMILLERO
Departamento de Ingeniería de Sistemas e Industrial
DE INVESTIGACIÓN
Facultad de Ingeniería
UQBAR Sede Bogotá
[2018]

Figura 4: Código fuente.

2. Broken Authentication.
En este apartado entran las vulnerabilidades que permiten a un usuario malintencionado sobrepasar los métodos de
autenticación utilizando fuerza bruta, cuentas por defecto, ataques de diccionario, sesiones sin expirar, entre otros.
Ejemplo:

A) Para explotar la vulnerabilidad de Insecure Login Forms, una vez se ingrese a la dirección establecida anteriormente
se busca dicha vulnerabilidad entre las opciones que brinda la página web y se presiona el botón ”HACK”.

Figura 5: Insecure Login Forms.

4
SEMILLERO
Departamento de Ingeniería de Sistemas e Industrial
DE INVESTIGACIÓN
Facultad de Ingeniería
UQBAR Sede Bogotá
[2018]

B) Luego se procede a buscar la vulnerabilidad, que en este caso se puede encontrar dando click derecho y después
click izquierdo en ”Ver código fuente de la página”

Figura 6: En busca de las vulnerabilidades.

C) Como se puede observar en la Figura 4, en el código fuente de la página se puede encontrar mucha información
acerca del funcionamiento de esta, pero lo más curioso es que también aparecen el usuario y contraseña para
ingresar.

Figura 7: Código fuente.

5
SEMILLERO
Departamento de Ingeniería de Sistemas e Industrial
DE INVESTIGACIÓN
Facultad de Ingeniería
UQBAR Sede Bogotá
[2018]

D) Luego se usan el usuario y contraseña para ingresar a la página.

Figura 8: Ingreso a la página.

Figura 9: Acceso concedido.

3. XML External Entities (XXE).


XXE se refiere a un ataque de falsificación de solicitud de servidor (SSRF), mediante el cual un atacante es capaz de
causar. denegación de servicio (DDoS) y/o acceso a archivos y servicios locales o remotos
Una vulnerabilidad de XXE consiste en una inyección que se aprovecha de la mala configuración del intérprete XML

6
SEMILLERO
Departamento de Ingeniería de Sistemas e Industrial
DE INVESTIGACIÓN
Facultad de Ingeniería
UQBAR Sede Bogotá
[2018]

permitiendo incluir entidades externas, este ataque se realiza contra una aplicación que interpreta lenguaje XML en
sus parámetros.
4. Broken Access Control.

Esta vulnerabilidad hace referencia a fallas en las comprobaciones que se realizan después de un proceso de auten-
ticación, ya sea a nivel de privilegios y roles o la validación del nivel de acceso durante el ciclo de vida de la sesión
de los usuarios. Las vulnerabilidades de este tipo son de alto impacto debido a que le permiten al atacante cambiar,
eliminar, ejecutar funciones no autorizadas o incluso controlar el sistema con privilegios del administrador.
5. Security Misconfiguration.
Este caso es muy general, ya que hace referencia a los huecos de seguridad que se dejan a la hora de desarrollar
una página web o aplicación como el manejo de configuraciones predeterminadas, páginas no utilizadas, archivos y
directorios sin protección.
6. Cross-Site Scripting (XSS).
Este tipo de vulnerabilidad es típico de las aplicaciones Web, que permite a una tercera persona inyectar en páginas
web visitadas por el usuario código en lenguajes como JavaScript, evitando medidas de control como la Política del
mismo origen, la cual evita que se altere la información desde otro lugar diferente al del usuario autenticado.

Existen 3 tipos:
Reflejado: En este caso solo se muestra en el navegador donde se ha inyectado el código, no genera ningún daño
en la página web, pero si puede generarlo en los usuarios de este.
Persistente o almacenado: Este tipo de XSS se almacena en el sitio web afectando a todos los usuarios que
frecuenten dicho sitio.
DOM based: En este caso el daño se provoca por medio de los scripts que están en el lado del cliente. Al abrir
una página infectada, el código malicioso puede aprovechar un agujero en la seguridad para instalarse en un
archivo del explorador web y ser ejecutado allí sin ninguna comprobación previa.

Métodos de inyección:
Formularios.
URL.
Cookies.

A continuación se presenta un ejemplo para explotar esta vulnerabilidad.

A) Para iniciar, primero se debe seleccionar la vulnerabilidad, que para este caso es XSS Reflected.

7
SEMILLERO
Departamento de Ingeniería de Sistemas e Industrial
DE INVESTIGACIÓN
Facultad de Ingeniería
UQBAR Sede Bogotá
[2018]

Figura 10: XSS Reflected.

B) Para esta vulnerabilidad se busca inyectar código para dar la siguiente orden ”><script>alert(document.cookie)</script>,
iniciando con un cierre de la variable string que almacena al usuario con comillas; pero al intentar inyectarlo en
el espacio designado por el usuario se puede notar que no se produce nada, por lo cual se pude suponer que hay
un filtro. Para evitar dicho filtro se puede alterar la orden un poco para evitar que sea reconocida como una pala-
bra prohibida de la siguiente manera ”><ScRiPt>alert(document.cookie)</ScRiPt>. Otra forma de evitar dicho
filtro puede ser ”><scr<script>ipt>alert(document.cookie)</scr<script>ipt>.

Figura 11: Inyectar código.

8
SEMILLERO
Departamento de Ingeniería de Sistemas e Industrial
DE INVESTIGACIÓN
Facultad de Ingeniería
UQBAR Sede Bogotá
[2018]

C) Una vez se envíe la orden se puede obtener la siguiente respuesta por parte de la página web

Figura 12: Alerta.

También podría gustarte