溫馨提示×

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

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

SQL注入攻擊的原理是什么

發(fā)布時(shí)間:2021-01-15 10:06:17 來源:億速云 閱讀:457 作者:小新 欄目:數(shù)據(jù)庫

小編給大家分享一下SQL注入攻擊的原理是什么,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

sql注入攻擊的原理

惡意用戶在提交查詢請(qǐng)求的過程中將SQL語句插入到請(qǐng)求內(nèi)容中,同時(shí)程序本身對(duì)用戶輸入內(nèi)容過分信任而未對(duì)惡意用戶插入的SQL語句進(jìn)行過濾,導(dǎo)致SQL語句直接被服務(wù)端執(zhí)行。

SQL注入攻擊分類

(1)注入點(diǎn)的不同分類

數(shù)字類型的注入字符串類型的注入

(2)提交方式的不同分類

GET注入POST注入COOKIE注入HTTP注入

(3)獲取信息的方式不同分類

基于布爾的盲注基于時(shí)間的盲注基于報(bào)錯(cuò)的注入

SQL注入攻擊案例:

1、查看文章的注入案例:

查看某篇文章的url參數(shù)為:?id=1

則通過注入命令:?id=1 or 1=1,則可以列出整個(gè)數(shù)據(jù)表里面的所有文章。

如果查看用戶是通過user_id來訪問,如:?uid=1

則通過注入命令:?id=1 or 1=1, 則可以把整個(gè)用戶表的記錄全部顯示出來

SQL命令如下:

通過?id=1的SQL命令為:select * from article where id=1,此語句查詢到1條結(jié)構(gòu)

通過?id=1 and 1=1的SQL命令為:select * from article where id=1 or 1=1,此語句查詢到整個(gè)表的記錄

2、用戶登錄的注入案例:

登錄表單有user_name字段,查詢語句為:select * from users where nickname='{user_name}'

則可以在user_name文本框填入:(' or 1='1),這樣可以構(gòu)造出注入的SQL命令:select * from users where user_name='' or 1='1',這樣很容易就進(jìn)入系統(tǒng)了。

3、SQL注入猜表:

在登錄頁面的用戶名字段填入:(' or 1=(select count(0) from t_porg_document) or 1='1),可以構(gòu)造出注入的SQL命令:select * from users where user_name='' or 1=(select count(0) from recharge) or 1='1'

這樣就可以猜測(cè)是否recharge表存在.存在則語句正常執(zhí)行,否則就報(bào)錯(cuò)了。

猜中表名后,就可以對(duì)數(shù)據(jù)表進(jìn)行增刪改查的操作,如:

在登錄頁面的用戶名字段填入:('; delete from users),可以構(gòu)造出危險(xiǎn)的SQL命令:select * from users where user_name=''; delete from users;

通過加分號(hào),可以構(gòu)造出任意增刪改查sql語句,整個(gè)數(shù)據(jù)庫就被攻擊者隨意控制了。

以上是“SQL注入攻擊的原理是什么”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI