SQL注入基础
1.SQL注入概念
1.1指web应用程序对用户输入数据的合法性没有判断或过滤不严,攻击者可以在web应用程序中事先定义好的查询语句的结尾上添加额外的SQL语句,在管理员不知情的情况下实现非法操作,以此来实现欺骗数据库服务器执行非授权的任意查询,从而进一步得到相应的数据信息。
1.2web应用程序三层架构:视图层+业务逻辑层+数据访问层
2.SQL注入之MySQL语句语法
2.1查询当前数据库服务器所有的数据库--show databases;
2.2选中某个数据库--use 数据库名字(test);
2.3查询当前数据库所有的表--show tables;
2.4查询t1表所有数据
2.4.1查询所有--select * from t1;
2.4.2条件查询--select * from t1 where 条件;
2.4.3查询id=2 pass=111(union合并查询)
select * from t1 where id=2 union select * from t1 where pass=111;
特性:1.前面查询的语句和后面查询的语句结果是互不干扰的;
2.前面的查询语句的字段数量和后面的查询语句的字段数量要一致
2.4.4order by (排序)---order by 字段名字 (也可以是数字)
作用:猜解表的列数,知道表有几列
3.SQL注入之MySQL系统库
3.1Information_schema库---信息数据库
常用的三张表
3.1.1SCHEMATA表--所有数据库信息
schemata_name----保存当前数据库服务器里面所有库名的信息
3.1.2TABLES表---所有表信息
table_name
3.1.3COLUMNS表---所有字段、列信息
column_name
3.2Performance_schema库---主要用于收集数据库服务器性能参数
3.3mysql库---核心数据库,主要负责存储数据库的用户账号信息、权限设置、关键字等mysql自己需要使用的控制和管理信息,不可删除
3.4sys库--可以查询谁使用了最多的资源,哪种表访问最多
--------------------未完待续---------------------------