[Root-Me] – NoSQL injection – blind

Challenge Description:

Diberikan sebuah web service sebagai berikut:

Website tersebut bertujuan untuk mengecheck flag dari available challenges, karena dari deskripsi diminta untuk mencari flag nosqlblind mari kita mulai mencari clue.

Pertama tama mari kita coba test input data.

Dapat kita lihat hasil form tersebut ternyata menggunakan method get.

Setelah saya mencari tahu tentang nosql injection dari resource yang diberikan, saya mendapatkan clue pertama yaitu, kita dapat menggunakan regex untuk mencari flag yang kita butuhkan, dengan menggunakan associative array yang dimiliki php

Resource:

dari resource diatas ada beberapa operator yang dapat kita masukan ke dalam associative array, operator tersebut dapat anda cari di:

https://docs.mongodb.com/manual/reference/operator/query/

Selanjutnya saya jelaskan kenapa pada contoh kita bisa memasukan $ne kedalam array, karena mongo db akan mengconvert data find tersebut menjadi json pada query find, selanjutnya anda dapat melihat contoh di :

https://docs.mongodb.com/manual/reference/operator/query/ne/#op._S_ne

 

Selanjutnya saya akan coba menggunakan regex dan hasilnya sebagai berikut:

Payload:

http://challenge01.root-me.org/web-serveur/ch48/index.php?chall_name=nosqlblind&flag[$regex]=1

Dan ternyata bisa, dari payload diatas kita dapat mengetahui bahwa 1 adalah salah satu isi dari flag nosqlblind, selanjutnya karena kita tidak mungkin mencoba satu persatu, mari kita menggunakan script:

ada beberapa character yang harus kita blacklist sebagai character yang akan di test, yaitu blacklist semua character yang dapat digunakan untuk regex, dan character yang dapat digunakan untuk sql mongodb.

Hasil script

FLAG = 3@sY_n0_5q7_1nj3c710n

 

Leave a Reply

Your email address will not be published. Required fields are marked *