Che tipo di attacchi possono essere usati contro MongoDB?

19

Sto iniziando a imparare MongoDB ed ero curioso di sapere se fosse suscettibile a qualche tipo di attacco di iniezione simile a SQLi . A causa della natura del DB, non credo che pensi possa essere inserito ma ... Quale altro tipo di attacco può essere sfruttato contro MongoDB?

    
posta Digital fire 07.11.2012 - 17:08
fonte

4 risposte

13

Riferimento ad oggetti diretti non sicuri

Applicazione lato client della sicurezza lato server

Iniezione JavaScript lato server

Anche MongoDB non dovrebbe essere valutabile al pubblico. Può essere protetto da password e le password possono essere forzate brute. I js lato client possono comunicare direttamente con MongoDB e MongoDB può autenticare i singoli utenti. Tuttavia il loro sistema di autenticazione è eccessivamente semplicistico, e in pratica ho visto solo questo progetto fallire.

    
risposta data 07.11.2012 - 19:09
fonte
7

Ci sono attacchi di iniezione contro MongoDB, ma questi sono in gran parte mitigati usando le appropriate librerie di adattatori di dati. Tuttavia, vale la pena sapere che è possibile iniettare in pochi modi.

La prima cosa che devi cercare sono i casi in cui generi dinamicamente un $where con JavaScript, utilizzando l'input dell'utente. Modificando i loro input, potrebbero essere in grado di modificare la tua query. Il secondo problema che devi gestire è l'iniezione di operatori come $or (o parametri per tali operatori) che possono alterare il comportamento della query. Entrambi sono mitigati dall'assenza di metodi in stile di concatenazione, ma utilizzando invece librerie che funzionano su strutture di dati (ad es. JSON).

Potrebbe anche essere possibile sfuggire al $ che precede un operatore, al fine di fornire operatori alternativi. Assicurati di eseguire correttamente l'escape delle chiavi se i dati dell'utente sono utilizzati al loro interno.

Tutto sommato, eviterei cose come NodeJS per qualcosa di critico per la sicurezza. Non è stato progettato pensando a qualsiasi forma di sicurezza, ed è un progetto giovane. Se stai consumando MongoDB da una lingua diversa, va bene.

Per maggiori dettagli, vedi Domande frequenti di MongoDB .

    
risposta data 07.11.2012 - 17:20
fonte
3

La prima vulnerabilità simile a quella di sql può essere eseguita anche nei database mongodb o nosql. quale sarebbe l'iniezione di mongodb.

Prova ad eseguire mongodb su una porta diversa invece del default 27017 per evitare di esporre. Per le pratiche di sicurezza ufficiali puoi sempre controllare link

Indica pratiche di sicurezza che dovrebbero essere usate con il server mongodb.

Iniezione Mongodb:

è completamente descritto qui per php come l'iniezione mongodb può avvenire in phpwebapp se i dati lato client non sono filtrati correttamente. Anche soluzione all'iniezione mongodb troppo

link

Attacco di iniezione di byte Null Mongodb

link

Questo è anche un tipo di attacco ben scritto su questo sito, dai un'occhiata a come certi campi della collezione mongo possono essere sovrascritti usando questo metodo può farlo in qualsiasi webapp.

    
risposta data 04.10.2013 - 13:26
fonte
2

Lo strumento NoSQLMap include molte funzionalità che si rivolgono direttamente a MongoDB.

link

È disponibile un video ancora migliore che mostra tutti i tipi di attacchi.

Troverai anche che NoSQLMap chiama al metasploit-framework, ad esempio, exploit / linux / misc / mongod_native_helper

Il progetto suggerisce anche la visualizzazione di questo talk DEF CON - link

Un altro strumento è Nosql Exploitation Framework

link

E ancora un altro su GitHub qui - link

Si scopre che MongoDB ha alcune cattive impostazioni predefinite (ad esempio, accesso anonimo, /var/mongo/f.txt o percorsi di file predefiniti, ecc.), facilmente intuibili anche se le impostazioni modificate e problemi classici nonché problemi web .

    
risposta data 11.08.2015 - 20:22
fonte

Leggi altre domande sui tag