Sunteți pe pagina 1din 12

Encabezado: SEGURIDAD EN AJAX

SEGURIDAD EN AJAX - Actividad 1

Damián Augusto Sánchez Cruz

Universidad Internacional de la Rioja

Notas del autor

Damián Augusto Sánchez Cruz

Máster Universitario en Seguridad Informática, Universidad Internacional de la Rioja

Este trabajo es financiado por el alumno

La correspondencia relacionada con este trabajo debe ser dirigida a Damián Augusto

Sánchez Cruz,

Contacto: damianaugusto.sanchezas1@comunidadunir.net
Encabezado: SEGURIDAD EN AJAX
2

Índice General

Introduccion .........................................................................................................................................3

Desarrollo .............................................................................................................................................4

Fingerprint maquina metasploitable ...................................................................................................4

Payload maquina metasploitable ........................................................................................................5

Diferencia entre un payload de tipo bind y reverse ............................................................................8

Explotacion con metasploit 12vulneabilidades Easy File Manager 5.3 ........................................... 10


Encabezado: SEGURIDAD EN AJAX
3

Introducción

Ajax no es una tecnología de desarrollo en sí misma, si no una colección de tecnologías de


desarrollo de páginas WEB, el término AJAX es un acrónimo de Asynchronous JavaScript +
XML, que se puede traducir como "JavaScript asíncrono + XML.

El término AJAX se presentó por primera vez en el artículo "Ajax: A New Approach to Web
Applications" publicado por Jesse James Garrett el 18 de Febrero de 2005.

Ajax realiza la carga de una página Web con los scripts que se comunican de manera asíncrona
con el servidor para adquirir los datos y poblar la pagina sin tener que cargar nuevamente la
página.

Las tecnologías que forman AJAX son:

 XHTML y CSS, para crear una presentación basada en estándares.

 DOM, para la interacción y manipulación dinámica de la presentación.

 XML, XSLT y JSON, para el intercambio y la manipulación de información.

 XMLHttpRequest, para el intercambio asíncrono de información.

 JavaScript, para unir todas las demás tecnologías.

Los beneficios de la tecnología Ajax es la rapidez en carga de paginas web, interfaces de usuario
gráficamente ricas, menor consumo de ancho de banda, asi como muchas otras tecnologías
presenta también desafíos de seguridad en este trabajo abordaremos algunos y la forma de
mitigarlos.
Encabezado: SEGURIDAD EN AJAX
4

Arquitectura AJAX
AJAX es una mezcla de 4 tecnologías, Java Script, XML, el objeto xmlHttpRequest y el Modelo de
Objetos de Documento (DOM) en la cual su fortaleza reside en que cuando se realiza una petición
al servidor web Ajax se realiza procesamiento local por medio de la implementación de un
pequeño motor, en el medio del cliente y el servidor (el lado del cliente (side-client) y la del
servidor web (web-server)), realizando la mayor parte del trabajo posible del lado del cliente
mejorando los tiempos de respuesta, consumiendo recursos de este(procesamiento) de esta
manera mejora la experiencia del usuario, permite crear interfaces de usuario más ricas
gráficamente y menor consumo de ancho de banda.

Ajax realiza la carga de una página Web con los scripts que se comunican de manera asíncrona
con el servidor para adquirir los datos y poblar la página sin tener que cargar nuevamente la
página.

Tecnologías Agrupadas AJAX


Encabezado: SEGURIDAD EN AJAX
5

Política del mismo origen – soap: Es una política definida para prevenir que un documento
o script cargado en un "origen" pueda cargarse o modificar propiedades del documento desde un
"origen" diferente como acceder al DOM, datos y cookies de otra página y que pueda utilizar AJAX
para realizar peticiones utilizando las cookies y credenciales que el usuario tiene activa.

Las páginas que se ejecutan en un sandbox no pueden escribir o leer recursos de otros orígenes,
esta medida protege que acciones maliciosas de otras páginas comprometan la seguridad.

El origen no coincide si alguno de los campos dominio, protocolo o puerto no se permite el acceso.

Origen Heredado

Las URLs heredan el origen desde el documento que cargó (about:blank y javascript: ), ya que la
URL por sí misma no proporciona ninguna información sobre el origen. Las data: URLs obtienen
un nuevo y vacío contexto de seguridad.

Las etiquetas <iframe> se mostrará sin problemas, pero se limita su acceso al contenido de la
página padre o de otros iframes.

Vulnerabilidades

 JSONi XMLi : Es un tipo de vulnerabilidad en aplicaciones que usan «parsers» XML un


atacante es capaz de realizar denegación de servicio (DDoS), obtener acceso a archivos y
servicios locales o remotos, se realiza por medio de ataques de inyección aprovechando
malas configuraciones del interprete XML lo que posibilita realizar inclusiones de
entidades externas es decir aplicaciones que reciben como entrada un documento XML y
para procesarlo hacen uso de alguna librería de parseo como LibXML, Xerces, MiniDOM,
SAX entre otras. El atacante aprovecha esta vulnerabilidad y envia un documento XML
manipulado para conseguir que el parser XML divulgue información del sistema, consuma
recursos en exceso, ejecute comandos u otras formas de explotación.

El ataque solo es posible cuando la forma de interpretar el XML permite incluir entidades
externas debido a su mala configuración. Puede llevar también a la lectura de archivos
locales, descubrimiento y mapeo de red interna, denegaciones de servicio, etc
Encabezado: SEGURIDAD EN AJAX
6

Ejemplo: se observa que se envia una etiqueta de texto mediante el método ‘GET’ a un
intérprete de XML

 RSS injection: Es una vulnerabilidad de explotación por medio de la ejecución de


comandos en sitios cruzados, los atacantes se aprovechan de la confianza de los usuarios
tienen con sitios familiares logrando explotar de dos formas:

Reflejada y almacenada.

o Reflejada : Se realiza por medio de la modificación de los valores usados para

pasar variables entre dos páginas, con este ataque se pueden realizar el robo de

cookies para luego suplantar la identidad, una técnica muy usada es la de enviar

correos falsos con enlaces maliciosos.

o Almacenada: Esta vulnerabilidad se realiza por medio de la inserción de código

en páginas mal construidas que permiten adicionar código html posibilitando que

los usuarios ingresen a sitio redidireccionado o capturando información.

 XSS DOM: Para explotar esta vulnerabilidad los datos se adquieren desde un
parámetro de URL u otro valor dentro del explorador, y se escriben en la página con
código del cliente, el dato adquirido se envían en el contenido dinámico que se envía
a un usuario web sin que se validen este se ejecuta como parte de la creación de
DOM (Modelo de objetos de documento), cada vez que el explorador de la víctima
actualice la página HTML.
Encabezado: SEGURIDAD EN AJAX
7

El dato malintencionado que se envía al explorador web puede ser un segmento de


código JavaScript, código HTML, Flash o cualquier otro tipo de código que el explorador
ejecute.

Ejemplo: El segmento de código JavaScript lee un ID de empleado, eid, a partir de una


solicitud HTTP y se lo muestra en pantalla al usuario.

String queryString = Window.Location.getQueryString();


int pos = queryString.indexOf("eid=")+4;
HTML output = new HTML();
output.setHTML(queryString.substring(pos, queryString.length()));
Fuente: https://blog.sucuri.net/espanol/2015/05/jetpack-y-twentyfifteen-vulnerable-a-dom-based-xss.html

El código de este ejemplo funciona correctamente si eid contiene solo texto alfanumérico
estándar. Si eid tiene un valor que incluye caracteres meta o código fuente, el explorador
web ejecutará el código al tiempo que muestra la respuesta HTTP.
- Los datos se leen directamente de la solicitud HTTP y se reflejan en la respuesta a la
aplicación almacena datos peligrosos en una base de datos.

 JSONP: Permite soportar llamadas desde otros dominios por medio de servicios
que expone el servidor para generar código con una determinada sintaxis usando
etiquetas <script> que permiten establecer el origen de scripts externos (atributo
SRC) en dominios diferentes al actual, no estando sujetas por tanto a las
restricciones impuestas por el aislamiento de dominio.

Estas llamadas posibilitan accesos no autorizados desde otros dominios dado que el
browser representa el código HTML y luego ejecuta el javascript potencialmente malicioso
en el controler de carga facilitando el robo de cookies o la generación de una pantalla de
inicio de sesión falsa para phishing dado que el dominio es uno conocido el usuario muy
difícilmente detecta el ataque.

 Javascript Hijacking: Es una vulnerabilidad que posibilita que un ataque de inyección


de código en la página web visitada, usando código JavaScript o VBscript.

Esta vulnerabilidad se produce por mala validación de datos de entrada o salida. Se puede
generar de forma directa (insertar código HTML peligroso en páginas mal configuradas;
Encabezado: SEGURIDAD EN AJAX
8

incluyendo así etiquetas como <script> o <iframe>), Directa (consiste en modificar valores
que la aplicación web utiliza para pasar variables entre dos págin.as).

Defensas
 Cors: (Cross origen resource charing) permite realizar carga de datos de otros
dominios. Para usar CORS se debe configurar el servidor, CORS no es soportado en los
navegadores antiguos.
Ejemplo: Si tu aplicación está en www.example.com y quieres obtener datos de
www.example2.com, el host example2 permitirá peticiones de example añadiendo una
cabecera:
Access-Control-Allow-Origin: http://www.example.com
Permitirá hacer peticiones a cualquier dominio adicionando la cabecera:

Access-Control-Allow-Origin:
Access-Control-Allow-Origin se puede añadir a un solo recurso o a todo el dominio.

 Anti CSRF y Javascript hijacking: CSRF es una técnica de falsificación de solicitudes


contra aplicaciones hospedadas en web en la cual un atacante haciendo uso de una
aplicación web maliciosa puede influir en la interacción entre un explorador cliente y una
aplicación web que confíe en ese explorador. El ataque es posible dado que los
exploradores web envían automáticamente tokens de autenticación en cada solicitud a un
sitio web.

Se puede implementar protecciones frente a esta vulnerabilidad CSRF realizando estas


acciones:

o Solicitando el inicio de sesión cuando se termine la conexión a la aplicación web


o Borrar las cookies del explorador periódicamente.
o Autenticación basada en cookies
o Autenticación basada en tokens

El middleware serializa una cookie cifrada de usuario. Valida la cookie en solicitudes


posteriores, el middleware, vuelve a crear la entidad de seguridad y asigna la entidad de
seguridad para el usuario propiedad de HttpContext.

 Como validar datos para evitar vulnerabilidades de seguridad AJAX:

Algunas de las recomendaciones de código seguro son:

Sin cookies: AJAX permite ir modificando dinámicamente la página actual, se puede


suministrar al usuario un identificador al inicio de la sesión, almacenarlo en la base de
datos y usarlo como un identificador que se envía con cada petición como un mecanismo
de autenticación y al estar en el entorno se borrara al cerrar la sesión.
Encabezado: SEGURIDAD EN AJAX
9

 Conexión cifrada: El cifrado de la información consumiría más recursos pero brinda


seguridad a la información que se intercambia con el servidor.

 Verificación de datos ingresados: Validar los datos capturados por el usuario y la


información requerida por la aplicación de forma que garantice que los datos no han sido
alterados.

 Controles de autenticación holístico: En todo intercambio de información se debe


realizar una validación de la autenticidad del usuario y la sesión.

 No usar en lo posible métodos Get: Usar el método Post que permite ocultar los
valores del formulario hacia el script de destino.
 Implementar un identificador de sesión Token: El script debe poder validar un
identificador de la sesión y que la información proviene de un sitio legitimo o del
formulario. Para ello se usa un token o código encriptado que se envía en un campo oculto
en el formulario para que el script valide.

 Validaciones Javascript : Validar los datos capturados (Tamaño, formato)

Auditoria de seguridad aplicaciones WEB


Existen metodologías de desarrollo seguro y guías de evaluación de seguridad en aplicaciones
web, una de ellas es OWASP que define 10 subcategorias evaluar:
 Recopilación de Información
 Pruebas de gestión de la configuración
 Pruebas de la lógica de negocio
 Pruebas de Autenticación
 Pruebas de Autorización
 Pruebas de gestión de sesiones
 Pruebas de validación de datos
 Pruebas de denegación de Servicio
 Pruebas de Servicios Web
 Pruebas de AJAX

 Recopilación de Información: Es la primera fase en la evaluación de seguridad se centra en


recoger toda la información de la aplicación que pueda ser obtenida.

 Pruebas de Gestión de la Configuración: El análisis sobre la infraestructura o la topología de la


arquitectura de la aplicación y su entorno pueden revelar datos importantes sobre una
aplicación Web.
Encabezado: SEGURIDAD EN AJAX
10

 Comprobación del Sistema de Autenticación: Validar los procedimientos usados para verificar la
identidad digital del remitente de una comunicación.

 Gestión de Sesiones: En la gestión de sesiones se evalúa todos los controles que se realizan sobre
el usuario, desde la autenticación hasta la salida de la aplicación.

 Pruebas de Autorización: Aquí se valida los procesos usados para conceder el acceso a los
recursos del sistema solo a los autorizados. Las pruebas de Autorización se basan en comprender
como funciona el proceso de autorización, y usar esa información para saltarse el mecanismo de
autorización.

 Pruebas de Lógica de Negocio: Validar si la secuencia lógica desarrollada para las funcionalidades
de la aplicación como el mecanismo de autenticación, que pasa si se intenta saltar del paso 1 al
3?.

 Pruebas de Validación de Datos: Una de las fallas más comunes en la seguridad es la no validación
adecuada de los datos de entrada o salida desde y hacia el cliente. Estos errores de programación
posibilitan la inyección de código en la página y ataques de desbordamiento de búfer entre otros.

 Pruebas de Denegación de Servicio: La realización de inundación de peticiones para lograr hacer


inalcanzable el servidor es técnica más común de ataques DoS.

 Pruebas de Servicios WEB: Los servicios web y SOA (Arquitectura Orientada a Servicios) están
creciendo ampliamente permitiendo que los negocios y aplicaciones interoperen y crezcan a un
ritmo sin precedentes. Los servicios web están expuestos a la red como cualquier otro servicio.

 Pruebas de AJAX: Este tipo de aplicaciones al procesar peticiones tanto en el cliente como en el
servidor se amplía la superficie de ataque.
Encabezado: SEGURIDAD EN AJAX
11

Conclusiones

1. Las aplicaciones Web – AJAX permite mejorar el rendimiento, la interactividad con


usuarios haciendo interfaces más ricas gráficamente y un menor consumo de ancho de
banda. El objeto XMLHttpRequest hace posible que el explorador se comunique
asíncronamente con el servidor posibilitando que el cliente web no tenga que esperar
respuesta del servidor.

2. La arquitectura AJAX difiere de la arquitectura Web tradicional dado que implementa un


motor AJAX encargado de gestionar los eventos de la aplicación y la comunicación
asíncrona con el servidor. Este motor AJAX es un intermediario entre el servidor Web y el
explorador

3. Realizar una adecuada validación de la entrada y salida de datos dado que es la ventana
de ataques, la validación de datos debe ser realizada tanto del lado del cliente como del
servidor.

4. Implementar la validación de un identificador de sesión y que la información proviene de


un sitio legitimo o del formulario. Para ello se usa un token o código encriptado que se
envía en un campo oculto en el formulario para que el script valide.
Encabezado: SEGURIDAD EN AJAX
12

http://notasjs.blogspot.com/2013/09/politica-del-mismo-origen-same-origin.html

https://developer.mozilla.org/es/docs/Web/Security/Same-origin_politica

https://es.wikipedia.org/wiki/Pol%C3%ADtica_del_mismo_origen

http://esjeblog.blogspot.com/2006/06/arquitectura-ajax.html

https://developer.mozilla.org/es/docs/Web/Guide/AJAX

https://backtrackacademy.com/articulo/explorando-la-vulnerabilidad-xxe-xml-external-entity

https://www.welivesecurity.com/la-es/2015/04/29/vulnerabilidad-xss-cross-site-scripting-sitios-
web/

https://blog.sucuri.net/espanol/2015/05/jetpack-y-twentyfifteen-vulnerable-a-dom-based-
xss.html

https://vulncat.fortify.com/en/detail?id=desc.structural.java.javascript_hijacking_vulnerable_framewor
k

S-ar putea să vă placă și