# Exploiting NoSQL injection to extract data * Chúng ta sẽ tiếp tục khai thác lỗ hổng NoSQLi để login vào user `administrator`. Đầu tiên ta login vào account `wiener` được cấp. ![Capture01](https://hackmd.io/_uploads/BJ-7lWOPp.png) * Vào Burp Suite Proxy để kiểm tra thì chúng ta sẽ thấy request `GET /user/lookup?user=wiener`. Đây là request dùng để tra cứu thông tin của user. ![Capture02](https://hackmd.io/_uploads/SJ-XxbdvT.png) * Chúng ta sẽ thử điền `administrator` để tìm kiếm thử. Như trên hình ta thấy thông tin của user `administrator` được trả về. ![Capture03](https://hackmd.io/_uploads/rkWmebuwp.png) * Chúng ta tiếp tục thêm dấu `'` vào và gửi lại. Màn hình hiển thị có lỗi xảy ra, vậy chúng ta có thể khai thác lỗ hổng NoSQLi ở đây. ![Capture04](https://hackmd.io/_uploads/HJbQgZ_wa.png) * Sử dụng payload `administrator' && '1'=='1`, đây là một payload luôn đúng nên có kết quả trả về thông tin của user `administrator` chắc chắn là có lỗ hổng. ![Capture05](https://hackmd.io/_uploads/SJ-QebuP6.png) * Ta đưa request trên vào Intruder, đổi payload lại thành `administrator' && this.password.length == $1$ || 'a'=='b` để tìm độ dài password của user `administrator`. ![Capture06](https://hackmd.io/_uploads/SyWQgW_w6.png) * Kết quả trả về thì có 1 request không có message "Could not find user". Vậy password có 8 kí tự. ![Capture07](https://hackmd.io/_uploads/BJ-XeZuDp.png) * Chúng ta tiếp tục dùng payload `administrator' && this.password[$0$] == $a$ || 'a'=='b` để tìm từng kí tự trong password. Payload đầu tiên là từ 0 đến 7, payload thứ hai là toàn bộ các kí tự thường theo gợi ý của lab. ![Capture08](https://hackmd.io/_uploads/H1Z7xZ_vT.png) * Kết quả brute-force, chúng ta đã tìm được password của user `administrator` là "iixsnvrx". ![Capture09](https://hackmd.io/_uploads/SJWQgWOvT.png) * Dùng password để login. Hoàn thành bài lab. ![Capture10](https://hackmd.io/_uploads/SybQebdDT.png)