mysql sql注释符号_SQL注入注释符(#、-- 、/**/)使用条件及其他注释方式的探索

以MySQL为例,首先我们知道mysql注释符有#、-- (后面有空格)、/**/三种,在SQL注入中经常用到,但是不一定都适用。笔者在sqlilabs通关过程中就遇到不同场景用的注释符不同,这让我很疑惑,让我们来深入挖掘一番(篇幅比较长,省时间可以跳到最后看结论)。

以第一关(GET提交方式)和第十一关(POST提交方式)为例,从前端--数据传输--数据库查询命令三方面讲解:

mysql sql注释符号_SQL注入注释符(#、-- 、/**/)使用条件及其他注释方式的探索_第1张图片

目录(本文篇幅较长,点击目录跳转)

在关卡源码中找到要执行的SQL语句,在下面加入以下代码,方便我们查看执行的SQL命令

echo "$sql
";

0716cfba32cbb30c784fc387c242c440.png

一、注释符:-- (后面有空格)(也就是--+)

第一关(GET提交方式)

1.URL:

http://localhost/sqlilabs/Less-1/?id=-1' union select 1,2,database()--+

mysql sql注释符号_SQL注入注释符(#、-- 、/**/)使用条件及其他注释方式的探索_第2张图片

执行没问题,注意黄色SQL命令这里的--+变成了-- (后面有空格)

2.burpsuite:

mysql sql注释符号_SQL注入注释符(#、-- 、/**/)使用条件及其他注释方式的探索_第3张图片

传输过程对单引号还有空格进行了url编码

3.MySQL命令行:

你可能感兴趣的:(mysql,sql注释符号)