通過sleep函式執行sql注入攻擊
• mysql教程• 發佈:2018-10-08
Mysql中sleep(n)讓語句停留n秒時間,然後返回0,若命令被中斷,則返回1。
因此,可以認為在通常情況下sleep函式返回值為恆為0,可以藉助sleep(n)=0的永真性執行sql注入。
例如,原本想刪除test表中id=2的條目,但是通過sleep可以刪除任意資料:
delete from test where id=2 or sleep(10)=0 limit 1--上述命令可以繞過id的限制,刪除任意資料,由於在後面加了limit 1,限制只刪除一條指令,因此,上述指令將刪除資料庫中的第一條資料。實驗如下:
1. 建立資料表test,插入三條資料

接下來執行語句
delete from test where id=2 or sleep(10)=0 limit 1--
可以看到,id=2並沒有執行,而是刪除了第一條資料,若是去掉limit 1的限制,將刪除資料表中所有資料。
