Introduction to Web Applications
Overview
El módulo cubre los siguientes temas:
¿Qué es una aplicación web?
¿Cuáles son las arquitecturas comunes de aplicaciones web?
¿Qué significan los términos front-end y back-end?
Los componentes principales del front-end de una aplicación web.
Uso, sintaxis y ejemplos de HTML, CSS y JavaScript.
Principales riesgos de seguridad de componentes front-end y cómo prevenirlos.
Introducción a HTML Injection, XSS y CSRF.
Los componentes principales del back-end de una aplicación web.
¿Qué es un servidor back-end y cómo se diferencia de un servidor web?
¿Cuáles son los servidores web más comunes y qué ventajas tiene cada uno?
¿Qué tipos de bases de datos existen y dónde se utiliza cada una?
Frameworks comunes para el desarrollo de aplicaciones web.
¿Qué son las APIs y cómo se utilizan?
OWASP Top 10.
HTML
¿Cuál es la etiqueta HTML que se utiliza para mostrar una imagen?
La respuesta es <img>
.
Cascading Style Sheets (CSS)
¿Cuál es la propiedad CSS que se utiliza para alinear un elemento HTML del texto a la izquierda?
CSS define el estilo de cada elemento o clase HTML entre llaves, dentro las cuales se encuentran las propiedades y sus valores: element { property : value; }
En este caso, para alinear un elemento a la izquierda se usa text-align: left;
Sensitive Data Exposure
Desplegamos el target y se nos presenta una IP con un puerto sobre el que está corriendo un servicio web: 94.237.63.93:49943
.
Si lo abrimos en el navegador, vemos un panel de inicio de sesión.
Hacemos Crtl + U para ver el código fuente por si existe información sensible expuesta y encontramos una contraseña: HiddenInPlainSight
.
HTML Injection
Ingresamos al navegador y colocamos la IP del target. En mi caso: 83.136.253.251:30079
.
Nos encontramos con lo siguiente:
Hay un botón que, al clickear sobre él, nos solicita nuestro nombre:
Luego, nuestro input se ve reflejado en el output:
Ahora, el ejercicio consiste en determinar qué se mostrarÃa en la página si usamos el siguiente payload como input: <a href="http://www.hackthebox.com">Click Me</a>
La respuesta es Your name is Click Me
.
Cross-Site Scripting (XSS)
Seguimos con la misma web, vamos a probar acontecer un XSS para obtener una cookie de sesión con el siguiente payload: <img src=/ onerror=alert(document.cookie)>
La cookie vale XSSisFun
.
Back End Servers
¿Qué sistema operativo usa WAMP? Windows
WAMP es una de las combinaciones existentes de stacks para servidores back-end en la que se emplean las siguientes tecnologÃas: Windows, Apache, MySQL y PHP.
Web Servers
Si un servidor web devuelve un código de estado HTTP 201, ¿qué significa?
El código HTTP 201 es Created
. Significa que la petición fue exitosa y un nuevo recurso fue creado como resultado.
Databases
¿Qué tipo de base de datos es Google's Firebase Database?
Es una base de datos NoSQL
.
Development Frameworks & APIs
Hacer una petición por GET a '/index.php?id=0' para buscar por el nombre del usuario con id igual a 1.
Dependiendo del valor que tome el parámetro id, nos devuelve un usuario si es que este existe. Para este caso, el usuario con id=1 es superadmin
.
Common Web Vulnerabilities
¿A qué categorÃa pertenece la vulnerabilidad 'CVE-2014-6271'?
Es un command injection
. Permite ejecutar comandos de Bash a través de un ShellShock por una falla al evaluar ciertas variables de entorno especÃficamente diseñadas.
Public Vulnerabilities
¿Cuál es la puntuación CVSS de la vulnerabilidad CVE-2017-0144?
Tiene una puntuación de 9.3
.
Last updated