sql注入原理,利用與防護

2022-05-11 14:25:09 字數 1417 閱讀 2435

注入攻擊的本質就是把使用者輸入的資料當作**來執行。所以注入攻擊有兩個必要條件

1.使用者能夠控制的輸入。

2.原本程式要執行的**,拼接了使用者輸入的資料。

按照請求方法可以分為:get請求、post請求

按照引數型別可以分為:數字型、字元型

按照資料返回結果分為:回顯、報錯、盲注

盲注又分為:布林盲注、延時盲注

or 1=1 --+

'or 1=1 --+

"or 1=1 --+

)or 1=1 --+

')or 1=1 --+

")or 1=1--+

"))or 1=1 --+

ps: #  url編碼後為 %23 ,可以用 --+ 替換

函式名作用

version()

資料庫版本

user()

資料庫使用者名稱

database()

資料庫名

@@datadir()

資料庫路徑

@@version_compile_os

作業系統版本

這裡是在本地搭建的乙個 sqli 的靶場,用來自己做練習,感覺還不錯。

1.檢測sql注入型別

直接在url處新增 單引號 發現**報錯、說明sql語句出錯,就可能存在注入

2.閉合sql語句

一般有兩種方法:

a.使用 # 號,把本行 # 號後面的內容注釋調,這樣就可以避免sql語句出錯,使我們構造的 payload 可以正確執行

b.根據sql語句,用符號進行閉合

這裡就直接用 # 進行注釋了,可以看到**的頁面回覆了正常

3.探測欄位列數

假設列數為 4 進行測試,頁面出錯,說明小於 4 列

然後列數為 3 進行測試,頁面正常,說明存在 3 列

4.檢視顯示位,進行測試

可以看到資料庫的版本資訊,說明存在sql注入漏洞

資料與**分離

對使用者輸入的資料進行嚴格過濾

對特殊字元進行轉義

使用預編譯語句

使用安全函式

檢查資料型別

SQL注入防護

sql 注入是指攻擊者通過惡意的sql命令插入到 web 表單的輸入域或頁面請求的查詢字串中,井且插入的惡意的sql命令會導致原有的 sql 語句作用發生改變,從而達到欺騙伺服器執行惡意的 sql 命令的一種攻擊方式。因為它可實現任意資料查詢,如查詢管理員的密碼 使用者 值資料等 嚴重時會發生 脫庫...

初級安全入門 SQL注入的原理與利用

sql shell 執行sql命令 os cmd 執行系統命令 os shell 與系統shell互動 r載入外部請求包 data data 通過post傳送資料字串 proxy proxy 使用http 鏈結到目標url tamper tamper 使用給定的指令碼篡改注入資料 current u...

sql注入原理

所謂sql注入,就是通過把sql命令插入到web表單提交或輸入網域名稱或頁面請求的查詢字串,最終達到欺騙伺服器執行惡意的sql命令。簡單例項 一張使用者表user,一般需要通過user id運算元據庫,例如 我們想要查詢 user id 1 的使用者資訊 通常我們可以寫sql語句 select fr...