SQL注入 基礎概念

2021-10-03 12:06:13 字數 1754 閱讀 5774

1.什麼是sql注入?

2.為什麼要了解sql注入?

3.sql注入原理

4.sql注入漏洞存在的原因

5.sql語言概述

6.學習sql語言的意義

正常的web埠訪問

正常訪問是web傳入程式設計者所希望的引數值,由程式查詢資料庫完成處理後,呈現結果頁面給使用者。

sql注入是如何訪問?

sql注入也是正常的web埠訪問。

只是傳入的引數值並非是程式設計者所希望的,而是傳入了巢狀sql**的引數值。

引數值利用程式處理注入者的邏輯,按注入者的期望執行資料庫查詢。

頁面甚至可以呈現按sql注入者期望的樣子顯示。

sql注入:是通過應用程式把帶有sql**的引數傳遞給資料庫引擎。

sql注入危害大

黑客最終的目標是資料,sql注入是直達資料庫引擎,甚至提權後可以與系統層互動,敏感資料可能被洩露、破壞的風險。

sql注入隱秘性強

sql注入也是正常的web埠訪問,系統或者資料庫管理員不易發覺,可能被攻擊者長期控制系統或者資料庫。

sql注入具有普遍性

sql關聯式資料庫行業的通用標準,sql注入不僅是mysql的問題,也是其它使用sql的資料庫的問題,有證據表明,60%以上有**具有sql注入漏洞。

知己知彼,目標為防

深入了解sql注入的終極目標是做好防範。提高資料安全意識,把資料安全提高到一定的戰略高度。

1.正常的訪問

$sql

="select * from users where login ='$uname' and password ='$pwd'"

php程式傳入結果引數:$uname=『sumoka』

$pwd=『123456』

結果:select

*from users where login = 『sumoka』 and password = 『123456『

2.sql注入訪問

$sql

="select * from users where login ='$uname' and password ='$pwd'"

php程式傳入結果引數:$uname=

' 'or1=

1--

$pwd=『123456』

結果:select

*from users where login =

' 'or1=

1--and password = '123456'

sql注入漏洞是應用程式的問題,而不是系統或者資料庫的問題。

sql注入本質的原因是人對資料安全的意識薄弱。或者即使有安全的意識,而程式設計師對如何防範無從下手。因此導致程式沒有對使用者輸入資料的合法性進行檢查,對傳入引數的安全性沒有完全的過濾。

sql注入的本質是什麼?

sql注入的本質實際上是sql語言的拼圖遊戲或者填空遊戲

sql注入的目標

sql注入的目標明確就是查詢資料或控制系統。

(1)查詢:利用複雜的select查詢獲取資訊,如管理員使用者名稱和密碼資訊

(2)插入:在管理員使用者表中插入一條記錄試圖獲得後台管理員許可權

(3)更新:更新使用者資料,進行提取,或者修改敏感資料。

(4)刪除:刪除管理員許可權記錄,清除腳印,破壞資料等。

因此,精通sql語言是sql注入的基礎。

sql注入基礎

mysqli 轉義字串函式 mysqli real escape string db,string mysqli 預編譯 拼裝sql語句 把要進行的操作的sql語句提前寫好,把需要改變的元素變成佔位符 select id,username from user where user name and ...

SQL注入基礎

最為經典的單引號判斷法 在引數後面加上單引號,比如 abc.php?id 1 如果頁面返回錯誤,則存在 sql 注入。原因是無論字元型還是整型都會因為單引號個數不匹配而報錯。如果未報錯,不代表不存在 sql 注入,因為有可能頁面對單引號做了過濾,這時可以使用判斷語句進行注入。其實所有的型別都是根據資...

SQL注入基礎

為了堅持而堅持,是撐不了多久的。sql注入就是指web應用程式對使用者輸入資料的合法性沒有判斷,前端傳入後端的引數是攻擊者可控的,並且引數代入資料庫查詢,攻擊者通過把sql命令插入到web表單提交或輸入網域名稱或頁面請求的查詢字串,最終達到欺騙伺服器執行惡意的sql命令。sql注入漏洞的產生要滿足兩...