堆疊查詢注入攻擊之結構理論

2021-10-06 10:51:10 字數 1282 閱讀 2398

stacked injections:堆疊注入。從名詞的含義就可以看到應該是一堆sql語句(多條)一起執行。而在真

實的運用中也是這樣的,我們知道在mysql中,主要是命令列中,每一條語句結尾加 ; 表示語句結束。

這樣我們就想到了是不是可以多句一起使用。這個叫做stacked injection。 在sql中,分號(;)是用來

表示一條sql語句的結束。試想一下我們在 ; 結束乙個sql語句後繼續構造下一條語句,會不會一起執行?

因此這個想法也就造就了堆疊注入。而union injection(聯合注入)也是

將兩條語句合併在一起,兩者之間有什麼區別麼?區別就在於union 或者union all執行的語句型別是有

限的,可以用來執行查詢語句,而堆疊注入可以執行的是任意的語句。

使用的條件

堆疊注入的使用條件十分有限,其可能受到api或者資料庫引擎,又或者許可權的限制只有當呼叫資料庫

函式支援執行多條sql語句時才能夠使用,利用mysqli_multi_query()函式就支援多條sql語句同時執行,

但實際情況中,如php為了防止sql注入機制,往往使用呼叫資料庫的函式是mysqli_ query()函式,其

只能執行一條語句,分號後面的內容將不會被執行,所以可以說堆疊注入的使用條件十分有限,一旦能

夠被使用,將可能對**造成十分大的威脅。

什麼是api:

堆疊查詢注入攻擊構造

正常sql語句:select * from users where id=』1』』;

注入sql語句:select * from users where id=』1』;select if(length(database())>5,sleep(5),1)%23;

payload= 『;select if(length(database())>5,sleep(5),1)%23

payload= 『;select if(substr(user(),1,1)=『r』,sleep(3),1)%23 如此句:從堆疊注入語句中可以看出,第二條sql語句

(select if(substr(user(),1,1)=『r』,sleep(3),1)%23就是時間盲注的語句。

堆疊注入和union的區別在於,union後只能跟select,而堆疊後面可以使用insert,update, create,delete等常規資料庫語句。

堆疊查詢注入攻擊

stacked injections 堆疊注入。從名詞的含義就可以看到應該是一堆sql語句 多條 一起執行。而在真實的運用中也是這樣的,我們知道在mysql中,主要是命令列中,每一條語句結尾加 表示語句結束。這樣我們就想到了是不是可以多句一起使用。這個叫做stacked injection。在sql...

注入攻擊之sql注入

在1998年,一位名為rfp的黑客發表了一篇題為 nt web technology vulnerabilities 的文章 注入攻擊的兩個條件 1 使用者能夠克制資料的輸入 在這裡,使用者能夠控制變數 2 原本要執行的 憑藉了使用者的輸入 一般輸入乙個 單引號就能引起執行查詢語句的語法錯誤,有些伺...

注入攻擊之CRLF

crlf實際上是兩個字元 r 十六進製制編碼 0x0d n 0x0a 在日誌檔案中可偽造日誌記錄 def log failed login username log open access.log a log.write user login failed for s n username log....