共計 1185 個字符,預計需要花費 3 分鐘才能閱讀完成。
自動寫代碼機器人,免費開通
丸趣 TV 小編給大家分享一下 SQL 注入攻擊的原理是什么,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
sql 注入攻擊的原理
惡意用戶在提交查詢請求的過程中將 SQL 語句插入到請求內容中,同時程序本身對用戶輸入內容過分信任而未對惡意用戶插入的 SQL 語句進行過濾,導致 SQL 語句直接被服務端執行。
SQL 注入攻擊分類
(1) 注入點的不同分類
數字類型的注入字符串類型的注入
(2) 提交方式的不同分類
GET 注入 POST 注入 COOKIE 注入 HTTP 注入
(3) 獲取信息的方式不同分類
基于布爾的盲注基于時間的盲注基于報錯的注入
SQL 注入攻擊案例:
1、查看文章的注入案例:
查看某篇文章的 url 參數為:?id=1
則通過注入命令:?id=1 or 1=1,則可以列出整個數據表里面的所有文章。
如果查看用戶是通過 user_id 來訪問,如:?uid=1
則通過注入命令:?id=1 or 1=1, 則可以把整個用戶表的記錄全部顯示出來
SQL 命令如下:
通過?id= 1 的 SQL 命令為:select * from article where id=1,此語句查詢到 1 條結構
通過?id=1 and 1= 1 的 SQL 命令為:select * from article where id=1 or 1=1,此語句查詢到整個表的記錄
2、用戶登錄的注入案例:
登錄表單有 user_name 字段,查詢語句為:select * from users where nickname= {user_name}
則可以在 user_name 文本框填入:(or 1= 1),這樣可以構造出注入的 SQL 命令:select * from users where user_name= or 1= 1,這樣很容易就進入系統了。
3、SQL 注入猜表:
在登錄頁面的用戶名字段填入:(or 1=(select count(0) from t_porg_document) or 1= 1),可以構造出注入的 SQL 命令:select * from users where user_name= or 1=(select count(0) from recharge) or 1= 1
這樣就可以猜測是否 recharge 表存在. 存在則語句正常執行,否則就報錯了。
猜中表名后,就可以對數據表進行增刪改查的操作,如:
在登錄頁面的用戶名字段填入:(delete from users),可以構造出危險的 SQL 命令:select * from users where user_name= delete from users;
通過加分號,可以構造出任意增刪改查 sql 語句,整個數據庫就被攻擊者隨意控制了。
以上是“SQL 注入攻擊的原理是什么”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注丸趣 TV 行業資訊頻道!
向 AI 問一下細節