mysql注入时的注释处理
2009-01-08 15:53
330 查看
我们在碰到字符型注入点时,要想办法把原查询SQL语句后面的单引号消掉才能让注入语句执行成功,我所知道常用的办法有以下几种(也许还有其他办法,望高手指教),假设查询字段数为两个且只用到一个字符型条件参数:
1、加注释,如:showtopic.php?key=abc' and 1<> 1 union select 1, 2 #
2、union方式,如:showtopic.php?key=abc' and 1<> 1 union select 1, 2 union select 1, 1 from information_schema.tables where '1' <> '1
3、特殊情况,如:showtopic.php?key=abc' and 1<> 1 union select 1, 2 from user where id=5 and '1' <> '1
以上几种方式中最简单的就是加注释了,这样就不用管原SQL后面是不是还有其他条件了。mysql的注释有三种方式:
1、块注释:/* ..... */
2、行注释:#
3、行注释:-- (--%20,注意后面有一个空格,与SQL标准稍有差别)
最先学习注入时看到很多文章都是说加后面加 /* ,但是我测试始终不成功,直接在mysql的终端试也不行,会提示输入结束符 */。用mssql测试同样失败,提示缺少匹配的注释结事符 */。我想块注释应该是要成对匹配的,否则执行会失败。如果是这样的话/*注释符对于我们注入来说是没有作用的。
使用#行注释符时要注意了,因为#在URI里面表示锚链接,所以要对它进行编码转义才行,输入 %23 即可。
--%20可以直接使用,但切记后面要有%20,直接输空格的话会被截断,只有URL中间的空间才会自动进行编码。
1、加注释,如:showtopic.php?key=abc' and 1<> 1 union select 1, 2 #
2、union方式,如:showtopic.php?key=abc' and 1<> 1 union select 1, 2 union select 1, 1 from information_schema.tables where '1' <> '1
3、特殊情况,如:showtopic.php?key=abc' and 1<> 1 union select 1, 2 from user where id=5 and '1' <> '1
以上几种方式中最简单的就是加注释了,这样就不用管原SQL后面是不是还有其他条件了。mysql的注释有三种方式:
1、块注释:/* ..... */
2、行注释:#
3、行注释:-- (--%20,注意后面有一个空格,与SQL标准稍有差别)
最先学习注入时看到很多文章都是说加后面加 /* ,但是我测试始终不成功,直接在mysql的终端试也不行,会提示输入结束符 */。用mssql测试同样失败,提示缺少匹配的注释结事符 */。我想块注释应该是要成对匹配的,否则执行会失败。如果是这样的话/*注释符对于我们注入来说是没有作用的。
使用#行注释符时要注意了,因为#在URI里面表示锚链接,所以要对它进行编码转义才行,输入 %23 即可。
--%20可以直接使用,但切记后面要有%20,直接输空格的话会被截断,只有URL中间的空间才会自动进行编码。
相关文章推荐
- MySQL专题10之MySQL序列使用、MySQL处理重复数据、MySQL以及SQL的注入
- mysql备份文件注释乱码处理工具
- mysql注入#号注释的问题,我忍不住要提醒一下
- mysql常用处理引擎及区别整理
- MySQL动态字符串处理DYNAMIC_STRING
- MySQL-修改字段类型、设置默认值,以及添加注释
- RDS MySQL InnoDB 锁等待和锁等待超时的处理
- MySQL处理数据库和表的常用命令
- MYSQL的SQL注入之宽字节注入
- MySQL -- Innodb是如何处理自增列的
- MySQL时间相关处理
- PL/SQL编码规范: 注释、变量命名、书写格式、逻辑分支、 循环处理
- MySQL锁机制详解及死锁处理方式
- mysql 给表和字段加注释
- EventBus源码解读详细注释(6)从事件发布到事件处理,究竟发生了什么!
- MySql防注入
- 16、注入篇————MYSQL注入
- 重装mySQL 3306 端口被占用,该怎么处理
- mysql手工注入流程整理
- PHP mysql 事务处理实例