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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM