通過sleep函式執行sql注入攻擊

2021-07-06 01:57:22 字數 788 閱讀 9525

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,插入三條資料

create table test(id int, name char(10));

insert into test values(1,'aa'),(2,'bb'),(3,'cc');

可以看到成功插入資料表

接下來執行語句

可以看到,id=2並沒有執行,而是刪除了第一條資料,若是去掉limit 1的限制,將刪除資料表中所有資料。

delphi通過winexec執行服務註冊

delphi xe 10.2.2 通過呼叫winexec進行服務註冊,這樣寫 winexec pansichar aaa.exe install sw hide 可以成功註冊,但是這樣寫就一直不能註冊服務var v str string begin v str aaa.exe install win...

SQL盲注中函式的用法

計算資料庫長度 id 1 and lengh database 8 sql的left 函式表示的是從字元表示式最左邊乙個字元開始返回指定數目的字元.若 b 的值大於 a 的長度,則返回字元表示式的全部字元a.如果 b 為負值或 0,則返回空字串.一般用來猜測庫的名字 庫名為security 這說明第...

SQL執行計畫 02 通過執行計畫優化sql

1 where子句的查詢條件中,如果是範圍查詢那麼索引列的值 是走索引的 和 是不走索引的 舉例 age列有普通索引 select from test table where age 100 走索引 select from test table where age 100 不走索引 2 盡量使用主鍵...