# NoSQL injection Lab3 本題目標是 NoSQL injection + 布林盲注的實戰應用,重點是「透過條件判斷來逐字猜出 admin 密碼」 一樣先進入網站並攔截登入請求。 ![image](https://hackmd.io/_uploads/r1ed12TVee.png) ![image](https://hackmd.io/_uploads/ryoWgh6Vgl.png) 在請求中有個很可疑的點就是在 user 後面直接等於用戶名,所以我直接嘗試看看目標用戶 `administrator`。 ![image](https://hackmd.io/_uploads/HyfDZ3a4gl.png) 看起來是可以直接看到別人資料的,但我們要知道密碼,所以來嘗試看看能不能注入點甚麼東西。 ![image](https://hackmd.io/_uploads/S1XC-2pVxx.png) ``` ' && '1'=='1 ``` ![image](https://hackmd.io/_uploads/r1WAz264ee.png) 系統沒有出錯,還顯示出使用者的資訊,所以確定可以注入東西,接著要來看這裡有沒有隱藏字串(密碼)。 而在登入的時候有出現 password 參數,所以我先以查詢 password 字串為主。 ![image](https://hackmd.io/_uploads/H1OQN2pEle.png) 這邊我們嘗試對比密碼第一位是否為 a。 ``` administrator'%26%26this.password[0]=='a ``` ![image](https://hackmd.io/_uploads/BJ6aN26Vxg.png) ``` administrator'%26%26this.password[0]!=='a ``` ![image](https://hackmd.io/_uploads/rJLyS2aNle.png) 從伺服器回應可以知道這裡確實有隱藏字串,但我們不知道長度也不知道內容,所以我們可以丟到 Intruder 裡面爆破。 ![image](https://hackmd.io/_uploads/ryWbU2aEeg.png) 以往都是 20 位,所以我一樣先測 20 ,不過跑完後發現只有 8 位。 ![image](https://hackmd.io/_uploads/BkHSLhaVex.png) 所以一樣爆破每一位的英文字母。 ``` administrator'%26%26this.password[0]=='a ``` ![image](https://hackmd.io/_uploads/Skb1K36Nex.png) 獲得最後帳密: `administrator:qxiviijw` ![image](https://hackmd.io/_uploads/rkltF3TExg.png) ---