亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

sql注入的原理是什么

發布時間:2021-05-14 10:43:02 來源:億速云 閱讀:1168 作者:小新 欄目:數據庫

這篇文章主要介紹了sql注入的原理是什么,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

1. 首先了解SQL注入的原理:

  SQL Injection:就是通過把SQL命令插入到Web表單遞交或輸入域名或頁面請求的查詢字符串,最終達到欺騙服務器執行惡意的SQL命令。

  具體來說,它是利用現有應用程序,將(惡意的)SQL命令注入到后臺數據庫引擎執行的能力,它可以通過在Web表單中輸入(惡意)SQL語句得到一個存在安全漏洞的網站上的數據庫,而不是按照設計者意圖去執行SQL語句。比如先前的很多影視網站泄露VIP會員密碼大多就是通過WEB表單遞交查詢字符暴出的,這類表單特別容易受到SQL注入式攻擊.(來源于百度)

  也就是說網站頁面包含與數據庫交互的部分(例如新聞網站的查找功能),而當在網站輸入數據信息,數據信息被程序化后傳入數據庫執行的過程中,網站的開發人員沒有對這些傳入數據庫的相應數據做安全處理(比如過濾特殊字符、編碼等),導致黑客可以將惡意代碼(也就是包含非法SQL語句的SQL命令)通過網站前段傳入數據庫,并在數據庫中執行這些具有黑客目的的SQL語句,從而造成數據庫信息泄露、損壞等后果。

2. SQL注入的一般分類

按照注入點類型來分類

(1)數字型注入點

  許多網頁鏈接有類似的結構 http://www.example.com/12.php?id=1 基于此種形式的注入,一般被叫做數字型注入點,緣由是其注入點 id 類型為數字,在大多數的網頁中,諸如 查看用戶個人信息,查看文章等,大都會使用這種形式的結構傳遞id等信息,交給后端,查詢出數據庫中對應的信息,返回給前臺。這一類的 SQL 語句原型大概為 select * from 表名 where id=1 若存在注入,我們可以構造出類似與如下的sql注入語句進行爆破:select * from 表名 where id=1 and 1=1

(2)字符型注入點

  網頁鏈接有類似的結構 http://xwww.example.com/users.php?user=admin 這種形式,其注入點 user 類型為字符類型,所以叫字符型注入點。這一類的 SQL 語句原型大概為 select * from 表名 where user='admin' 值得注意的是這里相比于數字型注入類型的sql語句原型多了引號,可以是單引號或者是雙引號。若存在注入,我們可以構造出類似與如下的sql注入語句進行爆破:select * from 表名 where user='admin' and 1=1 ' 我們需要將這些煩人的引號給處理掉。

(3)搜索型注入點

   這是一類特殊的注入類型。這類注入主要是指在進行數據搜索時沒過濾搜索參數,一般在鏈接地址中有 "keyword=關鍵字" 有的不顯示在的鏈接地址里面,而是直接通過搜索框表單提交。此類注入點提交的 SQL 語句,其原形大致為:select * from 表名 where 字段 like '%關鍵字%' 若存在注入,我們可以構造出類似與如下的sql注入語句進行爆破:select * from 表名 where 字段 like '%測試%' and '%1%'='%1%'

3. 如可判斷是否存在SQL注入(小白總結,僅供參考)

簡單點講就是:

   所有的輸入只要和數據庫進行交互的,都有可能觸發SQL注入

  SQL注入按照數據提交的方式可分為:

  (1)GET 注入:提交數據的方式是 GET , 注入點的位置在 GET 參數部分。比如有這樣的一個鏈接http://xxx.com/news.php?id=1 , id 是注入點。

  (2)POST 注入:使用 POST 方式提交數據,注入點位置在 POST 數據部分,常發生在表單中。

  (3)Cookie 注入:HTTP 請求的時候會帶上客戶端的 Cookie, 注入點存在 Cookie 當中的某個字段中。

  (4)HTTP 頭部注入:注入點在 HTTP 請求頭部的某個字段中。比如存在 User-Agent 字段中。嚴格講的話,Cookie 其實應該也是算頭部注入的一種形式。因為在 HTTP 請求的時候,Cookie 是頭部的一個字段。

   根據提交方式分類后,你會發現SQL注入最長發生的位置在鏈接地址、數據參數、cookie信息以及HTTP請求頭等位置。

  了解了可能存在SQL注入的位置,然后我們需要判斷在這些位置上是否能夠觸發SQL注入,最簡單的方式就是在相應位置輸入and 1=1 (以及and 1=1 的變換形式)來判斷。對于不同的注入點類型,比如字符型需要適當添加單引號,而對于數字型的注入點則不需要。

4. SQL注入的高級分類(按照執行效果分類)

  (1)基于布爾的盲注:即可以根據返回頁面判斷條件真假的注入。

  (2)基于時間的盲注:即不能根據頁面返回內容判斷任何信息,用條件語句查看時間延遲語句是否執行(即頁面返回時間是否增加)來判斷。

  (3)基于報錯注入:即頁面會返回錯誤信息,或者把注入的語句的結果直接返回在頁面中。

  (4)聯合查詢注入:可以使用union的情況下的注入。

  (5)堆查詢注入:可以同時執行多條語句的注入。

  (6)寬字節注入:利用gbk是多字節的編碼,兩個字節代表一個漢字

感謝你能夠認真閱讀完這篇文章,希望小編分享的“sql注入的原理是什么”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

sql
AI

梓潼县| 靖州| 分宜县| 印江| 资讯| 大化| 聂荣县| 南靖县| 青龙| 庄河市| 合阳县| 建昌县| 越西县| 榆社县| 淅川县| 咸阳市| 保定市| 寿光市| 湾仔区| 呼玛县| 湛江市| 阳谷县| 蓝山县| 盐边县| 色达县| 盐源县| 田林县| 孝昌县| 长宁区| 集安市| 临夏县| 中山市| 星子县| 高雄市| 博爱县| 铁岭市| 始兴县| 凤翔县| 铜鼓县| 日土县| 和林格尔县|