【從入門到放棄系列學習筆記8】web應用安全基礎整理-SQL注入漏洞利用
阿新 • • 發佈:2020-11-25
一、SQL簡介
結構化查詢語言(structured Query language),是一種特殊的程式語言,用於資料庫中的標準資料查詢。
是關係型資料庫的查詢語言,例如mysql,oracle,sqlserver都要使用SQL。
問:什麼是關係型資料庫?
二、漏洞原理
針對SQL注入的攻擊行為可描述為通過使用者可控引數中注入SQL語法,破壞原有SQL結構,達到編寫程式時意料之外結果的攻擊行為。
其原因可歸結為以下兩個原因疊加造成的:
1. 程式編寫在處理程式和資料庫互動時,使用字串拼接的方式構造SQL語句。
2. 未對使用者可控引數進行足夠的過濾便將引數內容拼接進SQL語句中。
三、注入點可能存在的位置
根據sql注入原理,在使用者“可控引數”中注入SQL語法,也就是說Web應用在獲取使用者資料的地方,只要帶入資料庫查詢,都有存在SQL注入的可能。
通常有:
-
- GET資料
- POST資料
- HTTP頭部
- Cookie資料
常見GPC,只要和資料庫有互動的地方
四、漏洞注入的危害
有多種資訊會被獲取,如管理員後臺密碼,從而脫取資料庫中內容(脫庫)。
如果資料庫本身存在缺陷,獲取資料庫許可權有問題,那麼攻擊者可以通過SQL注入漏洞直接獲取webshell或伺服器系統許可權。
五、SQL注入的分類
SQL注入漏洞根據不同的標準,有不同的分類。但從資料型別來分,可以分為數字型或字元型。
- 數字型注入:注入點的資料,拼接語句中是以數字型出現的,即資料兩邊沒有被單引號、雙引號包括。
- 字元型注入:根據注入手法,分為以下幾類
- 可聯合查詢注入(聯合查詢)
- 報錯型注入(報錯注入)
- 布林型盲注入(布林盲注)
- 基於時間延遲注入(延時注入)
- 可多語句查詢注入
六、SQL注入點的判斷
七、
·