Questo tipo di attacco è concettualmente uguale alla SQL Injection, ma i payload da utilizzare sono diversi perchè si basa su un linguaggio query NoSQL che è un po’ diverso dal linguaggio query di SQL. La differenza sostanziale sta nel fatto che tramite questo linguaggio possiamo triggherare il database dicendogli cose del tipo “l’username non è Pippo e la password non è Peppino” e in caso il database fosse sanitizzato male ci permetterebbe di loggarci o con un user o direttamente come admin a seconda delle configurazioni, ecco un esempio pratico:
{"username": {"$ne": "foo"}, "password": {"$ne": "bar"}}Questo potrebbe essere il messaggio da mandare al database che utilizza messaggi JSON, il $ne sta ad indicare che non è quello scritto nelle "" successive il che ci permette di loggarci. Per avere una lista di payload da poter provare vai alla seguente pagina PayloadsAllTheThings.