Construyendo la ruta del archivo desde la tabla de la base de datos que conduce a la vulnerabilidad CWE 73: Traversal del directorio

0

Tengo una tabla donde se almacenan el nombre de la máquina, la ruta del directorio y los nombres de archivo; cuando se me solicite, se supone que debo devolver el contenido del archivo concatenando la máquina_name + '\' + directory_path + '\' + filename, pero esto aparece como una vulnerabilidad de cruce de directorios. Mientras veo que la tabla de la base de datos se trata como una fuente contaminada, me pregunto cómo resolver esta situación. Intenté RandomAccessReferenceMap desde ESAPI, funciona si cambio referencias directas e indirectas, pero me gustaría saber si hay alguna otra forma estándar de formar las rutas desde las tablas de la base de datos.

    
pregunta Tech Junkie 16.03.2018 - 19:20
fuente

1 respuesta

1

Si la base de datos se considera una fuente contaminada (lo que tiene sentido, por ejemplo, si desea defenderse contra cambios en la base de datos realizada por inyección SQL), debe seguir el procedimiento estándar para sanear el contenido. . Por lo tanto, debe verificar que el nombre de la máquina solo contenga caracteres permitidos (y si el punto está permitido: que no contiene puntos consecutivos), que la ruta del directorio no contiene '/../', comience con '../' o termina con '/ ..' (quizás también una validación más estricta) y que el nombre del archivo al menos no contenga barras diagonales.

Probablemente debería leer sobre los ataques de recorrido de ruta y las políticas recomendadas de validación y desinfección para los nombres de archivo y ruta en lugar de seguir ciegamente mi sugerencia, ya que son exactamente lo que se me ocurrió como requisitos mínimos.

    
respondido por el Michael Karcher 17.03.2018 - 09:51
fuente

Lea otras preguntas en las etiquetas