WEB安全--SQL注入--SQL注入数据包的特征

一、异常的SQL语法结构

  • 特殊符号 :包含大量单引号 '、双引号 "、分号 ;、注释符(--、#、/* */)等。
    • 例如:' OR 1=1 --、" UNION SELECT null,version()#
  • 逻辑运算符 :频繁出现 OR、AND、UNION、SELECT、FROM、WHERE 等关键字。
    • 例如:' OR 'a'='a、1' UNION SELECT 1,2,3 --

二、异常的参数值

  • 永真条件 :参数中包含类似 1=1、'a'='a' 的永真逻辑,用于绕过验证。
    • 例如:?id=1' OR 1=1 --
  • 数据库函数/变量 :如 version()、database()、user()、concat()、sleep() 等。
    • 例如:?id=1' UNION SELECT version(),2 --
  • 系统表名 :尝试访问系统表(如 information_schema.tables、sysdatabases 等)。
    • 例如:?id=1' UNION SELECT table_name FROM information_schema.tables --

三、异常的请求行为

  • 多次重复请求 :同一参数反复变化,尝试不同的注入载荷(如盲注攻击)。
    • 例如:?id=1' AND (SELECT SUBSTRING(password,1,1) FROM users)='a' --
  • 超长参数值 :参数值异常长,可能包含编码后的注入语句。
    • 例如:?id=1'%20AND%20SLEEP(5)--(URL编码后的时间盲注)

四、数据库类型特征

不同数据库的语法差异可能导致流量中暴露特定关键字:

  • MySQL :CONCAT()、LIMIT、/**/ 注释。
  • SQL Server :WAITFOR DELAY '0:0:5'、xp_cmdshell。
  • Oracle :DUAL 表、UTL_HTTP。
  • PostgreSQL :pg_sleep()、|| 字符串拼接。

五、错误响应中的数据库信息

  • 若应用程序未屏蔽错误,返回的HTTP响应可能包含数据库错误信息:
    • 例如:You have an error in your SQL syntax; check the manual for your MySQL server version...

六、编码或混淆

  • URL编码 :注入语句被编码为 %27(')、%20(空格)、%3B(;)等。
  • 十六进制/Unicode编码 :如 0x414243(ABC的十六进制)或 CHAR(65)。
  • 多重嵌套 :如 1'/*!UNION*/SELECT/**/1,2,3--

七、盲注特征

  • 布尔盲注 :通过条件判断返回不同页面内容。
    • 例如:?id=1' AND (SELECT COUNT(*) FROM users) > 10 --
  • 时间盲注 :通过 SLEEP() 或 BENCHMARK() 函数触发延迟。
    • 例如:?id=1' AND IF(1=1, SLEEP(5), 0) --
相关推荐
ProcessOn13 小时前
纯干货!MySql实战02:一条SQL更新语句执行流程大探索!
sql·mysql·sql server
geovindu18 小时前
sql: JSON and XML Data Handling in SQL using mysql 9.0
数据库·sql·mysql·数据库开发
泡海椒18 小时前
JQuick-SQL SELECT 投影:字段、别名与表达式查询
数据库·sql
醒醒11119 小时前
从微信小程序到全端:一个安全扫描器的演进之路(v0.5.0 → v0.6.0)
前端·安全
猫咪很可爱19 小时前
mysqldump 失败常见场景
数据库·sql·mysql
萧瑟余晖19 小时前
Spring Security综合实战与安全加固详解
java·安全·spring
广东帝工19 小时前
如何保障智慧航道的安全
安全
其实防守也摸鱼19 小时前
Linux文本处理命令理论学习
linux·服务器·前端·数据库·sql·学习·安全
IM架构师19 小时前
# 一次老旧PHPCMS网站入侵排查:从SQL注入到PHP后门,以及IP白名单止血
sql·tcp/ip·php
狂师20 小时前
2026年安全测试工具大全,15款主流工具一次看懂
安全·测试