面试可能会提及
数据库:database()
informaton_schema
● .tables 表名
● .colums 列名
- 闭合符号
- order by 判断回显字段 , UNION SELECT 1,2,3,4查看显示出错字段数
- 库——表——列——值
判断sql注入
小刚师傅做法
利用两个单引号
1个单引号报错 ——>
2个单引号不报错 ——> sql(90%)
正常情况下都会过滤单引号 可以使用unicode编码尝试绕过单引号过滤 index.php?id=1%u0027
json数据,一般使用Jackson和fastjson 这个两个库都是有有unicode和hex的编码特性的 故我们遇到json数据也可以尝试编码绕过单引号过滤
判断数据库类型
端口判断
oracle:1521
msssql:1433
mysql:3306
系统架构组合识别
asp,dotnet,iis:msssql
php:mysql,postgresql
java:oracle,mysql
apache:mysql,postgresql
报措信息判断
ACCESS:错误提示Microsoft JET Database Engine错误'80040e14'
--说明是是通过JET引擎链接数据库的,则表明数据库为ACCESS数据库
Mssql:一般带有Microsoft SQL Server
Oracle:一般带有ORA-XXX
特殊符号
access注释符号:
Access中没有专门的注释符号
使用空字符"NULL"(%00)当作注释符号
mssql,oracle,postgresql注释符号:
-- 单行注释
/*...*/多行注释
mysql注释符号:
#单行注释符号
--+和#号一样,但是后边必须有个空格,没空个视为两个减号
/*aaaa*/可用于多行注释
其他
- 字符串拼接判断
- 内置函数判断
- 特殊语句查询
- 其他