Bypass hitelesítés nosql
Írtam egy egyszerű frontend MongoDB alapvető hitelesítési mechanizmus a felhasználónévvel és jelszóval, amely megtalálható a többé vagy kevésbé súlyos alkalmazásokat. Az egyéni gyűjtése alapján MongoDB tárolja az adatokat együtt PHP és az Apache.
Az alábbi képen egy gyűjtemény «myusers» menetrend:

1. ábra: A tartalom a táblázatban «myusers»
A legegyszerűbb alkalmazása a hitelesítési mechanizmusával, ha az összehasonlítás bevitt felhasználói nevet és jelszót (lásd. A lenti képen).

2. ábra: egy darab kódot, amely felelős a hitelesítési folyamat
Hogy jobban megértsük a működését a kódot, egy kis érintés lekérdezés méretét. Minden kérést a MongoDB kell lennie JSON formátumú, ahol tömbök paraméterek és értékek kerülnek továbbításra. MongoDB vezető olyan összetevő, amely átalakítja a tömb JSON formátumban.
Kérdés töltött értékeket, amelyek továbbítják MongoDB az alábbi formában:

Az URL, végrehajtja a hitelesítést, az én esetemben a következő:
Általános szabály, hogy a támadások kapcsolatos manipuláció bemeneti adatok, a fő cél -, hogy „eszén” logikája a háttérben. Ebben az esetben a logika egyszerű - meg kell került vissza igaz.
Az érték igaz értékkel tér vissza, ha: (felhasználónév = X) és (jelszó = Y).
Továbbá, mivel a következő kifejezés igaz: (username = A!) És (password = B!).
Megkerülni a hitelesítési mechanizmus, hogy mi fog használni, mint egy negatív érv nevében egy névtelen és nevében az adott felhasználó.
A PHP, akkor át a negatív paraméterek keresztül üzemeltető [$ ne], amely segít bennünket, hogy megkerülje a hitelesítési mechanizmus a következő URL'a:
A MongoDB oldalán végrehajtja a következő lekérdezést:
amely visszatér a teljes tartalmát a gyűjtemény, és a befecskendezés sikerül:
(Username = Mark) és (jelszó! = Bar)
Ahelyett, hogy a szó bár, akkor helyettesítheti bármilyen más kombináció karakter, ami nem jelszóval Mark.
Az URL a következőképpen néz ki:
A MongoDB bázis azt kérik: