Manejo de identificadores de recursos

RECU-0608 (Recurso Ejemplo)

Introducción

Cuando el software recibe información de un componente que esta en explotación, pero no se filtra ni se restringe la entrada antes de que sea utilizado, puede provocar que el recurso sea destinado a una funcionalidad no esperada.

El siguiente código Java utiliza las aportaciones de una solicitud HTTP para crear un nombre de archivo.

Descripción

El programador no ha considerado la posibilidad de que un atacante proporcione un nombre de archivo como "../../ tomcat / conf / server.xml ", que hace que la aplicación elimine uno de sus propios ficheros de configuración.

Ejemplos

 

String rName = request.getParameter("reportName");
File rFile = new File("/usr/local/apfr/reports/" + rName);
...
rFile.delete();

Una cuestión de inyección de recursos se produce cuando se dan estas condiciones:

  1. Un atacante puede especificar el identificador utilizado para acceder a un recurso del sistema. Por ejemplo, un atacante podría ser capaz de especificar parte del nombre de un archivo que se abrirá o un número de puerto que se utilizará.
  2. Al especificar los recursos, un atacante puede obtener una capacidad sobre el sistema que de otra manera no se permitiría. Por ejemplo, el programa puede dar al atacante la posibilidad de sobrescribir el archivo especificado, correr con una configuración controlada por el atacante, o transmitir información confidencial a un servidor de terceros.

Contenidos relacionados