sql盲注特點 SQL注入介紹及分類解讀

2021-10-17 01:21:02 字數 1561 閱讀 3010

sql全稱是structured query language,是一種結構化的查詢語言,用於與資料庫進行互動並能夠被資料庫解析。sql注入攻擊是一種常見的注入攻擊型別。攻擊方式在使用者與程式進行互動時發生的。如在表單輸入、搜尋框輸入功能中插入sql命令,然後傳送到服務端。服務端對資料進行了解析執行,並執行了一些非預期的操作。

危害1、從資料庫中讀取敏感資料;

2、篡改資料庫資料;

3、對資料庫執行管理許可權操作;

4、執行系統命令導致程式危害發生;

sql漏洞被列為高危漏洞

產生條件

1、sql語句中包含了不被信任的資料,如使用者輸入資訊等;

2、動態構建的sql語句,如將搜尋條件拼接到語句中;

注入影響

1、保密性:可能會導致敏感新洩露,如管理員賬戶、會員資訊等;

2、身份驗證:如果使用了較差的sql命令來進行判斷使用者資訊正確性。可能導致在不清楚使用者密碼的情況下,直接以使用者身份進行登入系統;

3、授權:如果將某平台的授權資訊儲存在資料庫中,可能被非法更改,導致經濟損失情況的發生;

4、完整性:如果敏感的資訊被非法讀取,可能導致此資訊所關聯的資訊被非法更改、破壞、刪除,影響了此條資料的完整性;

目前,在伺服器上面執行的大部分程式都是以資料庫為驅動,這樣進一步的增加了sql注入漏洞的產生,因此,sql注入漏洞非常關鍵,在開發過程中要嚴格把控。

注入分類

1、引數型別分類

數字型注入:輸入引數為整型時,如id、年齡和頁碼等;

字元型注入:輸入引數為字串型時,如姓名、職業、住址等;

兩者最大的區別:字元型注入一般要使用單引號進行閉合,而數字型注入則不需要;

2、注入位置分類

get注入:注入字元在url引數中;

post注入:注入欄位在post提交的資料中;

其他注入:http請求的其他內容觸發的sql注入漏洞;

3、結果反饋分類

盲注入:盲注入不會展現任何資料庫報錯內容,它是依據構造真或假的問題對資料庫進行「提問」,注入方式主要有兩種:基於布林值與基於時間。

3.1、基於布林值

如在mysql中判斷資料名長度的輸入為1' and length(database()) = 10 #,通過相應的正確與否判斷資料名的長度是否為10,猜測資料庫中資料的具體內容時,可以借助書本上substr、limit、ascii等一些特殊的命令及函式進行猜測;

3.2、基於時間

基於時間的sql盲注入方式通常是在sql語句中新增延時函式,依據相應時間來判斷是否存在sql注入,常用的延時函式或指令有sleep、repeat等。

總結:盲注入提交sql命令較多,通常通過手工方式無法完成,借用工具如sqlmap。

非盲注入(正常sql注入):執行注入sql語句將敏感資訊展示出來,並進行進一步的操作。

4、其他型別

延時注入:使用延時函式方式;

搜尋注入:注入點在搜尋框中;

編碼注入:將輸入的字串進行編碼,如base64編碼;

堆查詢注入:同時執行多條語句;

聯合查詢注入:使用union操作碼合併兩條或多條sql語句;

多階注入:由多個http請求響應共同完成的注入;

sql盲注特點 SQL盲注

盲注原理 盲注的分類 盲注常用函式 一 sql盲注概述 1.如果資料庫執行返回結果時只反饋對錯不會返回資料庫中的資訊 此時可以採用邏輯判斷是否正確的盲注來獲取資訊。2.盲注是不能通過直接顯示的途徑來獲取資料庫資料的方法。在盲注中,攻擊者根據其返回頁面的不同來判斷資訊 可能是頁面內容的不同,也可以是響...

sql注入 盲注

一,盲注介紹 所謂盲注就是在伺服器沒有錯誤回顯的時候完成注入攻擊。盲注分為布林盲注和時間盲注 布林盲注 boolean 根據注入資訊返回true or fales 沒有任何報錯資訊 時間盲注 介面返回值ture 無論輸入任何值,返回的情況都是正常的來處。加入特定的時間函式,通過檢視web頁面返回的時...

sql注入 盲注

一,盲注介紹 所謂盲注就是在伺服器沒有錯誤回顯的時候完成注入攻擊。盲注分為布林盲注和時間盲注 布林盲注 boolean 根據注入資訊返回true or fales 沒有任何報錯資訊 時間盲注 介面返回值ture 無論輸入任何值,返回的情況都是正常的來處。加入特定的時間函式,通過檢視web頁面返回的時...