|
|
|
# Objetivos
|
|
|
|
|
|
|
|
En base a las vulnerabilidades encontradas en la aplicación WackoPicko se
|
|
|
|
plantearon varios objetivos que el participante debe cumplir como parte de la
|
|
|
|
práctica.
|
|
|
|
Éstos se pueden plantear de dos formas distintas según el grado de dificultad
|
|
|
|
que se le quiera asignar.
|
|
|
|
|
|
|
|
A continuación se enumerarán los objetivos planteados, indicando en cada caso
|
|
|
|
(según corresponda) los dos planteamientos propuestos.
|
|
|
|
|
|
|
|
## Objetivo 1: Listado user:password
|
|
|
|
|
|
|
|
El primer objetivo planteado es obtener un listado lo más extenso posible de
|
|
|
|
pares usuario-password del sitio. Planteado de este modo hay varias formas de
|
|
|
|
encarar el problema, todas ellas aceptables.
|
|
|
|
|
|
|
|
Si se desea proveer una guía para la práctica se puede guiar a:
|
|
|
|
1. Encontrar una vulnerabilidad Stored SQL Inyection en el formulario de
|
|
|
|
registro.
|
|
|
|
2. Explotar dicha vulnerabilidad para obtener un listado de todos los usuarios
|
|
|
|
del sitio.
|
|
|
|
3. Buscar una herramienta para crackear password y utilizarla para obtener
|
|
|
|
passwords de dichos usuarios.
|
|
|
|
|
|
|
|
Se puede considerar proveer una herramienta de cracking o al menos darle alguna
|
|
|
|
pista al usuario que lo lleve a buscar alguna herramienta en particular.
|
|
|
|
|
|
|
|
La evaluación de este objetivo es sencilla, comparando la lista entregada con la
|
|
|
|
lista de usuarios y passwords conocida. Se pueden establecer criterios de
|
|
|
|
aprobación en base al porcentaje de pares obtenidos.
|
|
|
|
|
|
|
|
## Objetivo 2: Crear un usuario Administrador
|
|
|
|
|
|
|
|
El siguiente objetivo es crear un usuario con privilegios de administrador,
|
|
|
|
utilizando cualquier medio que se considere necesario.
|
|
|
|
|
|
|
|
Si se desea proveer una guía, se proponen los siguientes pasos:
|
|
|
|
1. Encontrar una página de administración.
|
|
|
|
2. Explotar una vulnerabilidad en la misma para obtener acceso como
|
|
|
|
administrador.
|
|
|
|
3. Crear el usuario con privilegios de administrador y los detalles
|
|
|
|
previamente indicados.
|
|
|
|
|
|
|
|
Pese a que la guía anterior permite realizar la tarea, no es la única forma de
|
|
|
|
hacerlo. Encontrar la interfaz de administración de la base de datos es otra
|
|
|
|
forma de crear el usuario, o incluso una Blind SQL Injection puede llegar a
|
|
|
|
permitir la creación del usuario.
|
|
|
|
|
|
|
|
La evaluación de este objetivo es sencilla si se indica al participante que
|
|
|
|
ingrese determinado nombre para el usuario creado.
|
|
|
|
|
|
|
|
## Objetivo 3: Directory Traversal
|
|
|
|
|
|
|
|
El objetivo es obtener un archivo en particular de un directorio de la
|
|
|
|
aplicación al cual no se tiene acceso mediante el uso adecuado de la aplicación.
|
|
|
|
|
|
|
|
En este caso no se considera que sea necesaria una guía ya que cualquier guía
|
|
|
|
sería directamente un HOWTO. Como sumo se le puede dar algún hint que oriente un
|
|
|
|
poco al usuario a analizar qué vulnerabilidad puede utilizar para lograr el
|
|
|
|
cometido ("la vulnerabilidad que se debe utilizar aquí está en el OWASP Top 10,
|
|
|
|
cuál parece ser la más sencilla en este caso?").
|
|
|
|
|
|
|
|
La evaluación de este objetivo nuevamente es muy sencilla ya que el archivo
|
|
|
|
obtenido es fácilmente comprobable.
|
|
|
|
|
|
|
|
## Objetivo 3: Session Hijacking
|
|
|
|
|
|
|
|
El objetivo es describir un método por el cual se podría realizar un ataque se
|
|
|
|
Session Hijacking en este sitio.
|
|
|
|
|
|
|
|
No se pide que se implemente el mismo ya que la misma puede llegar a llevar más
|
|
|
|
tiempo del cual se dispondría en una evaluación presencial.
|
|
|
|
|
|
|
|
La evaluación de este objetivo es manual, estudiando la solución provista por el
|
|
|
|
usuario para decidir si la misma es aceptable o no.
|
|
|
|
|
|
|
|
## Automatización de las evaluaciones
|
|
|
|
|
|
|
|
Las evaluaciones de los primeros tres objetivos son fácilmente automatizables:
|
|
|
|
1. El objetivo 1 debe comparar la lista provista con la conocida, ver cuántos
|
|
|
|
pares matchean entre las listas y en base a ese dato se da un porcentaje
|
|
|
|
que luego se comparará con el porcentaje decidido para la aprobación.
|
|
|
|
2. El segundo objetivo es fácilmente evaluable accediendo a la base de datos y
|
|
|
|
comprobando que existe un usuario administrador creado con el nombre
|
|
|
|
indicado al participante.
|
|
|
|
3. Este objetivo se puede evaluar muy fácilmente comparando el hash del
|
|
|
|
archivo entregado con el archivo original.
|
|
|
|
|
|
|
|
El único objetivo que no es fácilmente evaluable en su actual encarnación es el
|
|
|
|
cuarto, aunque con algunas modificaciones el mismo podría llevarse a una forma
|
|
|
|
en la cual su realización sea más práctica y su evaluación tome una forma más
|
|
|
|
automatizable. |