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.

Para poder responder a esta pregunta, estuve mirando algunas páginas, entre ellas la siguiente: CVE-2014-6271.


Public Vulnerabilities

¿Cuál es la puntuación CVSS de la vulnerabilidad CVE-2017-0144?

Tiene una puntuación de 9.3.

Last updated