Caso Practico Desarrollo Seguro PDF
Caso Practico Desarrollo Seguro PDF
Caso Practico Desarrollo Seguro PDF
Caso Práctico
Para poder realizar el ejercicio utilizaremos la aplicación wackopicko.
OBJETIVO 1
Identificar las vulnerabilidades que tiene la aplicación (utilizando una herramienta semiautomática
como Vega u OWASP Zap).
Como resultado de este ejercicio, se mostrará, por una parte, la cantidad de ocurrencias
identificadas y clasificadas según su nivel y, por la otra, la clasificación de todas estas
ocurrencias en tipologías de vulnerabilidades.
La herramienta que se ha escogido para el escaneo es VEGA, ya que la encontré más amigable y
fácil de entender, para realizar el escaneo escogemos la opción Start New Scan
2
Luego se escoge los módulos que se desea incluir en el escaneo:
Una vez hecho esto el programa procede a realizar el escaneo, el cual tomó alrededor de 30
minutos, los resultados que arrojó son:
4
OBJETIVO 2
Explotar las vulnerabilidades, indicando cómo se ha explotado cada vulnerabilidad y cuál ha sido el
resultado (adjuntando pantallazos).
Vega encontró que este sitio web no usa las banderas HttpOnly y Secure, dado que las sesiones de
cookies son autenticación de credenciales, si un atacante accede a esta información puede usar
Cross Site Scripting.
El cual queda abierto para que desde otro navegador incluso otra computadora pueda manterse en la
misma sesión usando dicha ruta de la barra de direcciones.
SQL Injection
Si usamos la forma ‘ or 1=1 – entraremos en la consulta y nos responderá con el usuario o usuarios
existentes en la base de datos, si colocamos cualquier valor en el campo:
Vemos que nos da acceso como el usuario “Sample User” lo que se traduce en una falla de
seguridad porque hemos tenido acceso a la base de datos y al sitio web.
6
Cross Site Scripting
En primer lugar se accede a la url que especificó VEGA para esta vulnerabilidad, la cual nos
menciona está en la caja de búsqueda imágenes, hacemos la prueba de inserción de un comando que
nos permite inyectar el código html, en este caso accederemos el código <p>TEST</p>, así vemos
que:
Ahora corroboramos que el código tipo script fue insertado exitosamente, esto puede usarse por un
atacante para dañar la página, acceder a una cookie o redireccionar/abrir una nueva url, en este caso
vamos a abrir una nueva ventana con la url de ejemplo www.virus.com. con el código
<script>window.open("http://www.virus.com");</script> y se presenta el siguiente escenario:
Page Fingerprint Differential Detected
De acuerdo a esta vulnerabilidad una posible inclusión de archivos puede presentarse, esto se puede
ver al escribir la url 192.168.1.7:83/admin/?page=../../../, lo cual indica la siguiente ventana:
Esto es una manera de enumerar directorios del servidor lo que implica una falla de seguridad,
también podría permitir una posible inclusión de archivos en un directorio, el cual generalmente es
un el archivo /etc/passwd.
Vega detectó que el sitio muestra una ruta del sistema con la url 192.168.1.7:83/admin/
Esta información es sensible ya que puede revelar parámetros del ambiente del servidor a los
atacantes, nunca se debe enviar mensajes de respuesta con este tipo de información hacia el lado del
cliente, debe ser re-direccionado hacia otro tipo de respuesta, puede ser a un log de errores para su
análisis.
Logic Flaw
Recorriendo la página en la ficha Home, podemos ver un enlace que dice: Whats is going on today?
8
En este enlace si adelantamos con el boton What abou tommorow? Llegamos a encontrar un cupon
valido para días posteriores, con este cupon intentamos agregar en el carro de compras una imagen.
Al agregar múltiples veces el cupon a la cuenta, nos permite hacerlo varias veces y el precio del
item baja considerablemente, este es un error ya que permite al usuario ejecutar una función sin
límite lo que perjudica al negocio.
Así podemos ver que del precio de 20 Tradeux podemos obtener el ítem por 6.97 Tradeux por
ejemplo.
10
Objetivo 3
Proponer, al menos, una medida de prevención para cada vulnerabilidad analizada (se entiende
como medidas de prevención las modificaciones en el código donde se encuentra el problema).
Asimismo, se podrán indicar medidas adicionales sobre buenas prácticas de seguridad relativas a la
tipología de la vulnerabilidad.
La forma de remediación es configurar las banderas con valor TRUE el archivo php.ini que se
encuentra en la ruta:
Para remediar debemos escapar los caracteres propios de mysql para consulta en la base de datos,
para esto usamos el comando: mysql_real_escape_string
Ahora al ingresar los comandos de prueba nos muestra un error y ya no nos permite acceder como
Sample User
12
Cross Site Scripting
Para remediar este caso, se debe evitar que se muestre caracteres como “ ‘ ”, que van a permitir dar
la pauta de que se puede inyectar el código html y esecificamente los script, para esto usamos el
comando html entities antes de GET ‘query’, como se muestra en la imagen.
Así al ingresar el código html para un script, por ejemplo que la página emita un cuadro de alerta,
nos mostrará de la siguiente manera: