SQL注入原理与MySQL相关知识

介绍SQL注入

SQL注入是指Web应用程序对用户输入的合法性没有判断,传入的参数是攻击者可以控制的,并带入数据库查询,攻击者可以构造不同的SQL语句进行对数据库的操作.

SQL注入条件

1,参数_用户可控

2,参数代入数据库查询

MySQL注入相关知识

在MySQL5.0版本以后MySQL数据库中会默认存放一个"information_schema"的数据库,在其中有三个表名

1597894350974_4.png

1,SCHEMATA在这里是存放用户创建的所有数据库的库名,他的字段名为SCHEMA_NAME.

1597894329344_3.png

2,TABLES表存放的是用户创建所有的库名和表名字段分别为TABLE_SCHEMA和TABLE_NAME.

1597894392805_5.png

3,COLUMNS表是存放用户创建的所有数据库的库名,表名和字段名分别为,TABLES_SCHEMA,TABLES_NAME和COLUMNS_NAME.

1597894428303_6.png

MySQL查询语句

| 在不知道任何条件时,语句如下所示. |
| SELECT 要查询的字段名 FROM 库名.表名 |
| 在知道一条已知条件时,语句如下所示 |
| SELECT 要查询的字段名 FROM 库名.表名 WHERE 已知条件的字段名='已知条件的值' |
| 在知道两条已知条件时,语句如下所示. |
| SELECT 要查询的字段名 FROM 库名.表名 WHERE 已知条件的字段名='已知条件的值' AND 已知条件2的字段名='已知条件2的值' |

limit的用法

limit的使用格式为limit m,n m指开始的位置,n指取出多少条数据.

常用的函数

database(): 当前使用的数据库

version(): 当前MySQL的版本

user(): 当前MySQL的用户

注释符

#

--

/**/

内联注释

/*! code */ 用于执行我们的SQL语句

联合注入查询

union + 你要查询的语句

order by 判断字段数量

order by 是将列进行排序

后面数字是列数,如果没有就报错

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容