# NoSQL injection Lab4 這題是進階版的 NoSQL Injection + JavaScript-based field extraction,非常像在偷看 MongoDB 的結構,用盲注慢慢猜出欄位名與值,目標是盜用 carlos 帳號登入系統。 一樣先進入網站並攔截登入請求。 ![image](https://hackmd.io/_uploads/HytOq3pVge.png) ![image](https://hackmd.io/_uploads/Hyvh536Vxe.png) 因為不知道密碼是啥,所以我隨便輸入並攔截請求。 ![image](https://hackmd.io/_uploads/HkHXo2pEgg.png) 這裡我們嘗試繞過密碼,但顯然沒有用,因為被擋掉了,但可以知道這個網站有漏洞,所以我們可以利用這點先找到重設密碼的參數叫啥(網頁沒寫)。 ![image](https://hackmd.io/_uploads/B13_p2T4eg.png) ``` Object.keys(this)[4].match(/^$u$/) ``` ![image](https://hackmd.io/_uploads/B1uiRpTVxg.png) 透過每一位的爆破,最終我們得知重設密碼的參數是 `changePwd`。 ![image](https://hackmd.io/_uploads/Sk8cC66Nel.png) 所以我們將剛剛爆破出來的參數名稱家在我們的指令中,進而爆破我們的值來拿去改密碼。 ``` "function(){ if(this.changePwd.match(/^$a$/)) return 1; else 0; }" ``` ![image](https://hackmd.io/_uploads/Hy-vyRa4gg.png) 最後獲得:`90dc1df732fd6314` ![image](https://hackmd.io/_uploads/BknYJC6Ngl.png) 所以我們丟到 Repearter 中做修改。 ![image](https://hackmd.io/_uploads/Syop10pNlg.png) 現在可以進到更改密碼的頁面,隨便填入我們想要的密碼。 ![image](https://hackmd.io/_uploads/BJQe0ppVeg.png) 最後回去登入完成本題。 ![image](https://hackmd.io/_uploads/SyySRaa4lx.png) ---