Elastisearch implicazioni dell'iniezione NoSQL?

1

Sto testando un'applicazione web e ho trovato un parametro vulnerabile all'iniezione NoSQL (Elastisearch). Il parametro è denominato username ed è l'unico parametro nella richiesta HTTP. Come risposta, ottengo solo un messaggio vero / falso a seconda che il nome utente esista.

In base ai messaggi di errore che ottengo se inserisco una virgoletta doppia nel nome utente, ho concluso che l'iniezione avviene qui:

[{"size":1000,"query":{"query_string":{"query":"username:INJECTION_POINT"","lowercase_expanded_terms":true}}}]]]

Posso usarlo per estrarre i valori dei campi a cui non ho accesso eseguendo l'iniezione NoSQL basata su boolea, ad esempio fornendo il seguente valore: victim_nomeutente AND phone = 0 * (risulterebbe in un messaggio "vero" se il numero di telefono delle vittime inizia con 0).

Ma c'è qualcos'altro che potrei provare? C'è qualche possibilità di enumerare i nomi dei campi? C'è qualche possibilità di eseguire RCE utilizzando l'iniezione NoSQL in Elastisearch? Altre idee?

Il server Elastisearch non è esposto direttamente, ma suppongo che l'applicazione che sto test esegua le query NoSQL su un server interno.

    
posta pineappleman 01.03.2017 - 00:00
fonte

0 risposte

Leggi altre domande sui tag