0x01 前言
今天听学长们交流漏洞挖掘的经验,提到了Limit注入,借此来学习一下limit注入
0x02 知识介绍
limit
LIMIT[位置偏移量,]行数
其中,中括号里面的参数是可选参数,位置偏移量是指MySQL查询分析器要从哪一行开始显示,索引值从0开始,即第一条记录位置偏移量是0,第二条记录的位置偏移量是1,依此类推...,第二个参数为“行数”即指示返回的记录条数。
效果如图 自行理解
benchmark
benchmark函数有两个参数,第一个是执行次数,第二个是要测试的函数或者表达式
比如 benchmark(10000000,sha1(1))
意思是执行sha1函数10000000次 使mysql运算量增大 导致延时 有点类似与多表联合查询(笛卡尔积)
如图
大概执行10000000次会造成3秒以上的延时
0x03 limit注入
Example:select*from limittest limit 1,[可控点] or select ... limit [可控点]
limit后面能够拼接的函数只有into和procedure,into可以用来写文件,本文我们不考虑。
在Limit后面 可以用 procedure analyse()这个子查询
而且只能用extractvalue 和 benchmark 函数进行延时
procedure analyse(updatexml(rand(),concat(0x3a,benchmark(10000000,sha1(1)))),1)
如图
0x04 脚本批量检测
我的思路是将获取的url的每个id用poc来测试查看有没有延时。