SQL注入是什么意思?
SQL注入是什么意思?
SQL注入即是指web應(yīng)用程序?qū)τ脩糨斎霐?shù)據(jù)的合法性沒有判斷或過濾不嚴(yán),攻擊者可以在web應(yīng)用程序中事先定義好的查詢語句的結(jié)尾上添加額外的SQL語句,在管理員不知情的情況下實(shí)現(xiàn)非法操作,以此來實(shí)現(xiàn)欺騙數(shù)據(jù)庫(kù)服務(wù)器執(zhí)行非授權(quán)的任意查詢,從而進(jìn)一步得到相應(yīng)的數(shù)據(jù)信息

SQL注入攻擊的類型
SQL注入攻擊可以通過多種方式執(zhí)行。在選擇特定攻擊方法之前,攻擊者可能會(huì)觀察系統(tǒng)的行為。
帶內(nèi)注入
這是典型的攻擊,攻擊者可以通過相同的通信通道發(fā)起攻擊并獲得結(jié)果。這是通過兩種帶內(nèi)技術(shù)完成的:
● 基于錯(cuò)誤的SQL注入:從顯示的錯(cuò)誤消息中獲取有關(guān)數(shù)據(jù)庫(kù)的信息
● 基于聯(lián)合的SQL注入:依賴于攻擊者能夠?qū)NION ALL被盜信息的結(jié)果與合法結(jié)果連接起來。
這兩種技術(shù)都依賴于攻擊者修改應(yīng)用程序發(fā)送的SQL,以及瀏覽器中顯示的錯(cuò)誤和返回的信息。如果應(yīng)用程序開發(fā)人員或數(shù)據(jù)庫(kù)開發(fā)人員無法正確地參數(shù)化他們?cè)诓樵冎惺褂玫闹?,那么它?huì)成功。兩者都是試錯(cuò)法,可以檢測(cè)到錯(cuò)誤。
盲注入
也稱為推理SQL注入,盲注入攻擊不會(huì)直接從目標(biāo)數(shù)據(jù)庫(kù)中顯示數(shù)據(jù);相反,攻擊者會(huì)仔細(xì)檢查行為中的間接線索。HTTP響應(yīng)中的詳細(xì)信息,某些用戶輸入的空白網(wǎng)頁以及數(shù)據(jù)庫(kù)響應(yīng)某些用戶輸入需要多長(zhǎng)時(shí)間,這些都可以是線索,具體取決于攻擊者的目標(biāo)。他們還可以指向攻擊者嘗試的另一個(gè)SQLi攻擊途徑。
帶外注入
這種攻擊有點(diǎn)復(fù)雜,當(dāng)攻擊者無法在單個(gè)直接查詢 – 響應(yīng)攻擊中實(shí)現(xiàn)其目標(biāo)時(shí),攻擊者可能會(huì)使用此攻擊。通常,攻擊者會(huì)制作SQL語句,這些語句在呈現(xiàn)給數(shù)據(jù)庫(kù)時(shí)會(huì)觸發(fā)數(shù)據(jù)庫(kù)系統(tǒng)創(chuàng)建與攻擊者控制的外部服務(wù)器的連接。以這種方式,攻擊者可以收集數(shù)據(jù)或可能控制數(shù)據(jù)庫(kù)的行為。
二階注入就是一種帶外注入攻擊。在這種情況下,攻擊者將提供SQL注入,該注入將由數(shù)據(jù)庫(kù)系統(tǒng)的單獨(dú)行為存儲(chǔ)和執(zhí)行。當(dāng)二級(jí)系統(tǒng)行為發(fā)生時(shí)(它可能類似于基于時(shí)間的作業(yè)或由其他典型管理員或用戶使用數(shù)據(jù)庫(kù)觸發(fā)的某些事情)并且執(zhí)行攻擊者的SQL注入,那就是當(dāng)“伸出”到系統(tǒng)時(shí)攻擊者控制發(fā)生了。