一,回顾SQL语法
1.查询所有数据库 show databases;
2.选中某个数据库 use 数据库名;
3.展示数据库里的表 show tables;
4.查询t1表的所有数据 select * from t1;
5.条件查询 where
6.order by 排序
order by 字段名
二,数字型注入点
这一类的 SQL 语句原型大概为 select * from 表名 where id=1
若存在注入,我们可以构造出类似与如下的sql注入语句进行爆破:select * from 表名 where id=1 and 1=1
三,GET方式注入
get注入方式比较常见,主要是通过url中传输数据到后台,带入到数据库中去执行,可利用联合注入方式直接注入
使用场景:1.数据不敏感 2.安全性不高 3.长度有限 2kb 4.速度非常快
四,攻击方式小总结
1.给可控参数添加单引号,and 1=1,and 1=2.试过后基本就存在sql注入,之后可采取order by 1-99语句查询该数据表的字段数量。
如该数据表字段数量为3,输入id=1 order by 3 反馈结果和id=1 order by 4反馈一样的结果而id=1 order by 4反馈结果不同,则字段数为3
2.union注入攻击:进行1步骤后,union select 1,2,3 判断在1,2,3中可以输入sql语句的位置,然后即可插入sql语句进行查询
3.boolean注入攻击:针对只反馈yes或no结果的页面,即返回的结果不会存在数据库的数据,只是特定的正确或错误
那么可以试图判断数据库名的长度
‘ and length(database())>=1 --+