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來測試查看有沒有延時。