¿Qué tipo de ataques se pueden usar contra MongoDB?

19

Estoy empezando a aprender MongoDB y sentí curiosidad por saber si era susceptible a algún tipo de ataque de inyección similar a SQLi . Debido a la naturaleza de la base de datos, no creo pensar que se pueda inyectar en ella, pero ... ¿Qué otro tipo de ataques pueden aprovecharse contra MongoDB?

    
pregunta Digital fire 07.11.2012 - 17:08
fuente

4 respuestas

13

Referencia de objeto directo inseguro

Cumplimiento del lado del cliente de la seguridad del lado del servidor

Inyección de JavaScript del lado del servidor

También MongoDB no debe ser evaluable para el público. Puede estar protegido por contraseña, y las contraseñas pueden ser forzadas. Client-Side js puede comunicarse con MongoDB directamente, y MongoDB puede autenticar usuarios individuales. Sin embargo, su sistema de autenticación es demasiado simplista, y en la práctica solo he visto fallar este diseño.

    
respondido por el rook 07.11.2012 - 19:09
fuente
7

Hay ataques de inyección contra MongoDB, pero estos se mitigan en gran medida mediante el uso de bibliotecas de adaptador de datos adecuadas. No obstante, vale la pena saber que es posible inyectar de varias maneras.

Lo primero que debes tener en cuenta es en los casos en los que construyes dinámicamente un $where con JavaScript, usando la información del usuario. Al modificar sus entradas, pueden alterar su consulta. El segundo problema que debe manejar es la inyección de operadores como $or (o parámetros para dichos operadores) que pueden alterar el comportamiento de la consulta. Ambos se mitigan al no usar métodos de estilo de concatenación, sino a bibliotecas que funcionan en estructuras de datos (por ejemplo, JSON).

También puede ser posible escapar del $ que precede a un operador, para proporcionar operadores alternativos. Asegúrese de que está escapando las claves correctamente si se utilizan datos de usuario en ellas.

En general, evitaría cosas como NodeJS por cualquier cosa crítica para la seguridad. No se ha diseñado teniendo en cuenta ninguna forma de seguridad, y es un proyecto joven. Si estás consumiendo MongoDB de un idioma diferente, está bien.

Para obtener más detalles, consulte Preguntas frecuentes de MongoDB .

    
respondido por el Polynomial 07.11.2012 - 17:20
fuente
3

La primera vulnerabilidad similar a la inyección de SQL se puede hacer también en las bases de datos mongodb o nosql. que sería la inyección de mongodb.

Intente ejecutar mongodb en un puerto diferente, en su lugar en el predeterminado 27017 para evitar la exposición. Para las prácticas de seguridad oficiales, siempre puedes consultar enlace

Indica las prácticas de seguridad que deben usarse con el servidor mongodb.

Inyección de mongodb:

aquí se describe completamente para php cómo se puede realizar la inyección de mongodb en phpwebapp si los datos del lado del cliente no se filtran correctamente. También solución a la inyección mongodb también

enlace

Mongodb Ataque de inyección de byte nulo

enlace

Este es también un tipo de ataque que está bien escrito en este sitio. Observe cómo ciertos campos en la colección de Mongo se pueden sobrescribir con este método. Esto se puede hacer en cualquier aplicación web.

    
respondido por el Abhishek 04.10.2013 - 13:26
fuente
2

La herramienta NoSQLMap incluye una gran cantidad de funciones que se dirigen directamente a MongoDB.

enlace

Hay un video aún mejor disponible que muestra todo tipo de ataques.

También encontrará que NoSQLMap llama al esquema de metasploit, por ejemplo, exploit / linux / misc / mongod_native_helper

El proyecto también sugiere una visualización de esta conversación de DEF CON - enlace

Otra herramienta es el Marco de Explotación Nosql

enlace

Y otro más en GitHub aquí: enlace

Resulta que MongoDB tiene algunos valores predeterminados incorrectos (por ejemplo, acceso anónimo, /var/mongo/f.txt o ubicaciones de archivos predeterminadas, etc.), configuraciones fáciles de adivinar aunque modificadas, y problemas clásicos , así como problemas web .

    
respondido por el atdre 11.08.2015 - 20:22
fuente

Lea otras preguntas en las etiquetas