Sql注入之limit注入的学习

0x01 前言

今天听学长们交流漏洞挖掘的经验,提到了Limit注入,借此来学习一下limit注入

0x02 知识介绍

limit

LIMIT[位置偏移量,]行数

其中,中括号里面的参数是可选参数,位置偏移量是指MySQL查询分析器要从哪一行开始显示,索引值从0开始,即第一条记录位置偏移量是0,第二条记录的位置偏移量是1,依此类推...,第二个参数为“行数”即指示返回的记录条数。

效果如图 自行理解

1.png

benchmark

benchmark函数有两个参数,第一个是执行次数,第二个是要测试的函数或者表达式 

比如 benchmark(10000000,sha1(1))

意思是执行sha1函数10000000次 使mysql运算量增大 导致延时 有点类似与多表联合查询(笛卡尔积)

如图

2.png

大概执行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)

如图

3.png

0x04 脚本批量检测

我的思路是将获取的url的每个id用poc来测试查看有没有延时。

posted @ 2018-05-07 18:17  Mrsm1th  阅读(10069)  评论(3编辑  收藏  举报