Sunteți pe pagina 1din 4

Referencia Directa Insegura a Objetos

Una referencia directa insegura a objetos ocurre cuando un desarrollador expone una referencia a un objeto de implementacin interno, tal como un fichero, directorio, o base de datos. Sin un chequeo de control de acceso u otra proteccin, los atacantes pueden manipular estas referencias para acceder datos no autorizados. Por ejemplo, en las aplicaciones Home Banking, es comn usar el nmero de cuenta como clave primaria. Por lo tanto, es tentador usar el nmero de cuenta directamente en la interfaz web. Incluso si los desarrolladores tomaron las medidas necesarias para prevenir ataques de SQL Injection, si no hay validaciones extra que verifiquen que el usuario es el dueo de la cuenta y que est autorizado para verla, un atacante puede forzar el parmetro nmero de cuenta y lograr ver o cambiar todas las cuentas.

Escenario
Una aplicacin presenta una referencia directa insegura a objetos, por ejemplo, una lista con posibles documentos que pueden ser seleccionados para ser visualizarlos, donde cada entrada de la lista referencia directamente a un fichero del sistema de archivos. Un atacante, como usuario autorizado en el sistema, simplemente modifica el valor de un parmetro (uno de esos documentos) que se refiere directamente a un objeto del sistema a otro objeto para el que el usuario no se encuentra autorizado. Normalmente, las aplicaciones utilizan el nombre o clave actual de un objeto cuando se generan las pginas web. Las aplicaciones no siempre verifican que el usuario tiene autorizacin sobre el objetivo. Esto resulta en una vulnerabilidad de referencia directa insegura a objetos. Los auditores pueden manipular fcilmente los valores del parmetro para detectar estas vulnerabilidades y un anlisis de cdigo mostrara rpidamente si la autorizacin se verifica correctamente.

Descripcin
Explotaremos esta vulnerabilidad cambiando una referencia en la pgina "text-file-viewer.php. Paso 1: Buscar un sitio vulnerable Buscar una vulnerabilidad de este tipo en una aplicacin web utilizando herramientas como firebug, hackbar, u otra similar.

Page 1 of 4

Paso 2: Ejecucin La ejecucin consiste en inspeccionar con firebug o alguna herramienta similar el componente donde se encuentra la vulnerabilidad, y modificar la referencia para que apunte al objeto inseguro que queremos obtener.

Page 2 of 4

Paso 4: Qu hacer con esta informacin? Una vez que el atacante accede al objeto inseguro, tendr la informacin necesaria para llevar a cabo su objetivo. Por ejemplo, se podran obtener archivos de configuracin, de usuarios y passwords, etc. En la siguiente imagen se observa cmo se logra obtener el archivo hosts de Windows:

Page 3 of 4

Mtodos de Prevencin
Prevenir referencias inseguras a objetos directos requiere seleccionar una manera de proteger los objetos accesibles por cada usuario (por ejemplo, identificadores de objeto, nombres de fichero): Utilizar referencias indirectas por usuario o sesin. Esto evitara que los atacantes accedieren directamente a recursos no autorizados. Por ejemplo, en vez de utilizar la clave del recurso de base de datos, se podra utilizar una lista de 6 recursos que utilizase los nmeros del 1 al 6 para indicar cul es el valor elegido por el usuario. La aplicacin tendra que realizar la correlacin entre la referencia indirecta con la clave de la base de datos correspondiente en el servidor. ESAPI de OWASP incluye relaciones tanto secuenciales como aleatorias de referencias de acceso que los desarrolladores pueden utilizar para eliminar las referencias directas a objetos. Comprobar el acceso. Cada uso de una referencia directa a un objeto de una fuente que no es de confianza debe incluir una comprobacin de control de acceso para asegurar que el usuario est autorizado a acceder al objeto solicitado.

Referencias
OWASP, Top 10 2007-Insecure Direct Object https://www.owasp.org/index.php/Top_10_2007-Insecure_Direct_Object_Reference Reference:

Page 4 of 4

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