またログイン?! (注: Another Login Challenge を先に解く必要はありません)
初心者向けヒント1: 問題の概要
index.jsでは、簡易的なログイン機能が実装されています。- MongoDBを利用して、送られた
usernameとpasswordのユーザーが存在するかチェックしているようです。 - 自分でユーザーを作ることはできなさそうです。また、
adminというユーザーが登録されていますが、そのパスワードを推測することも不可能でしょう。
初心者向けヒント2: 問題のアプローチ
- コメントにもある通り、
application/x-www-form-urlencodedとapplication/jsonの両方の形式でデータを送ることができるようです。したがって、JSONを利用すればusernameとpasswordに文字列以外のデータを送れます。 - ログイン画面の機能だけでは意図したデータを送れないかもしれません。ブラウザ以外の方法でデータを送る方法については、I wanna be the AdminのWriteup を参考にしてください。
初心者向けヒント3: 本当に詰まった時は
- MongoDB インジェクション、あるいはNoSQL インジェクションで検索してみましょう。