MySQL语法中有哪些可以利用的漏洞?

「作者主页」:士别三日wyx
「作者简介」:CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者
「专栏简介」:此文章已录入专栏《MySQL数据库快速入门》

MySQL语法中有哪些可以利用的漏洞?_第1张图片

MySQL语法

  • 1. SQL语句以分号结尾
  • 2. SQL语句区分大小写
  • 3. 注释的内容不被执行
    • 3.1 单行注释
    • 3.2 多行注释

1. SQL语句以分号结尾

下面这条SQL的作用是查询数据库的所有用户

select user from mysql.user;

在SQL结尾处添加分号可以正常执行:
MySQL语法中有哪些可以利用的漏洞?_第2张图片
不添加分号则不能被执行:
在这里插入图片描述
利用分号,可以同时执行多条SQL语句:
MySQL语法中有哪些可以利用的漏洞?_第3张图片
SQL注入中经常利用这一特性进行渗透,比如堆叠注入,就是利用分号来同时执行多条语句,来获取网站不想给用户看的那些数据。

2. SQL语句区分大小写

还是上面那条SQL,当我们将SQL中的内容全部或部分换成大写时,执行结果不会发生变化:
MySQL语法中有哪些可以利用的漏洞?_第4张图片
SQL注入中常常利用这一特性来绕过,即大小写绕过。
比如有些网站过滤了 select 关键字,我们可以使用 SELECT 或 Select等不同的大小写形式来绕过这些过滤条件。

3. 注释的内容不被执行

MySQL允许程序员在SQL语句中标注内容,也就是注释。

如果你想让别人看懂这条SQL语句的作用,可以在SQL中添加注释。

MySQL对注释的使用做了一些规范:

3.1 单行注释

单行注释只能在一行的范围内使用。

MySQL提供了两种单行注释的规范:-- 注释内容 和 # 注释内容

我们还是拿上边的SQL来举例,注释的内容不会被执行:
MySQL语法中有哪些可以利用的漏洞?_第5张图片
SQL注入中经常利用注释来对网站进行渗透,比如万能账号:
MySQL语法中有哪些可以利用的漏洞?_第6张图片

3.2 多行注释

除了单行注释,MySQL还提供了一种多行注释:/*注释内容*/

与单行注释不同的是,多行注释可以穿插在SQL语句中使用,而单行注释则会报错,比如下面这样:
MySQL语法中有哪些可以利用的漏洞?_第7张图片
SQL注入常使用多行注入来绕过空格。

比如,某网站过滤了参数中的空格,我们就可以使用注释来替代空格:
MySQL语法中有哪些可以利用的漏洞?_第8张图片
感谢你的点赞、收藏、评论,我是三日,祝你幸福!

你可能感兴趣的:(《MySQL数据库快速入门》,mysql,java,python,c语言,网络安全)