Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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.
1
SEMILLERO
Departamento de Ingeniería de Sistemas e Industrial
DE INVESTIGACIÓN
Facultad de Ingeniería
UQBAR Sede Bogotá
[2018]
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]
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.
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]
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”.
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”
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.
5
SEMILLERO
Departamento de Ingeniería de Sistemas e Industrial
DE INVESTIGACIÓN
Facultad de Ingeniería
UQBAR Sede Bogotá
[2018]
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) 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]
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>.
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