< 返回新聞公共列表

如何預(yù)防sql注入攻擊呢?

發(fā)布時間:2021-06-10 14:37:15

職業(yè)攻擊者與普通攻擊者的區(qū)別在于,職業(yè)攻擊者更能理解SQL header。在嚴格關(guān)閉詳細錯誤信息防御的情況下,普通攻擊者會直接跳轉(zhuǎn)選擇下一個攻擊對象。


利用SQL盲注漏洞的技術(shù)手段有很多??梢栽试S攻擊者通過時間、響應(yīng)和非主流渠道獲取數(shù)據(jù)。SQL 查詢發(fā)送一個簡單的問題,返回真假并重復(fù)數(shù)千次。數(shù)據(jù)庫中的SQL盲注漏洞很難被發(fā)現(xiàn),因為它們隱藏在黑暗中。如果發(fā)現(xiàn)漏洞,它可以支持多種數(shù)據(jù)庫和大量可用漏洞??紤]響應(yīng)時間以及何時使用重量級非主流渠道工具。很明顯,大多數(shù) SQL 盲注漏洞都是自動化的,并且可以應(yīng)用很多攻擊。有圖形界面、命令類型等,有了對SQL注入和盲注的基本了解,我們就可以開始進一步利用漏洞了。完成快速發(fā)現(xiàn)注入并修復(fù)漏洞。


那么我們如何預(yù)防sql注入攻擊呢?


1.定義了SQL盲注的位置。清除方法是:將無效數(shù)據(jù)返回到通用錯誤頁面。這時候可以通過包含副作用(比如時間延遲),或者拆分和平衡參數(shù)來確認SQL注入。接下來,我們需要考慮漏洞的屬性:是否可以強制執(zhí)行錯誤和控制無錯誤頁面的內(nèi)容?


2.在SQL中詢問一個位是1還是0可以推斷出單個信息位。有許多推理技術(shù)可用于實現(xiàn)這一目標。


3.使用基于時間的技術(shù)睡眠類型函數(shù)或運行時間長的查詢來引入延遲。逐位法或二進制搜索法提取數(shù)據(jù)并使用延遲來顯示數(shù)據(jù)值。

通常,時間在 sqlserver 和 Oracle 上用作推理方法。但是,這種方法對于 MySQL 來說并不可靠,并且該機制可能會失敗。但是,可以通過添加超時或其他技術(shù)來改進它。


4. 使用基于響應(yīng)的技術(shù),可以通過逐位或二進制搜索的方法提取數(shù)據(jù),并用響應(yīng)內(nèi)容來表示數(shù)據(jù)值。

通常,插入子句包含在現(xiàn)有查詢中。它保持查詢不變或根據(jù)推斷值返回空結(jié)果。基于響應(yīng)的技術(shù)可用于各種數(shù)據(jù)庫。在某些情況下,一個請求可以返回多位信息。


5.使用非主流渠道

帶外通信的優(yōu)點是以塊的方式而不是位的方式提取數(shù)據(jù)在速度上有明顯的提高。最常用的通道DNS。攻擊者誘使數(shù)據(jù)庫進行名稱查找,其中包含攻擊者控制的域名,并在該域名之前添加了一些要提取的數(shù)據(jù)。請求到達 DNS 名稱服務(wù)器后,攻擊者可以查看數(shù)據(jù)。其他通道還包括 HTTP 和 SMTP。不同的數(shù)據(jù)庫支持不同的非主流渠道,支持非主流渠道的工具數(shù)量明顯少于推理技術(shù)。


6.用SQL自動盲注

Bsqlacker 是另一種圖形工具,它使用基于時間和基于響應(yīng)的推理技術(shù)和標準錯誤從被詢問的數(shù)據(jù)庫中提取數(shù)據(jù)。雖然目前還處于測試階段,還不是很穩(wěn)定,但該工具具有良好的前景,并提供了大量的欺詐機會。Sqlrule 是一個命令行工具,適用于想要使用基于時間或響應(yīng)的推理來利用固定漏洞的用戶。 Sqlmap 將漏洞的發(fā)現(xiàn)和利用結(jié)合在一個強大的工具中,它支持基于時間的推理和基于響應(yīng)的推理,以及ICMP 通道方法。該工具發(fā)展迅速,發(fā)展非常積極。


如何預(yù)防sql注入攻擊呢?.jpg


以上6點就是如何預(yù)防sql注入攻擊的措施,希望能幫助到大家。




/template/Home/Zkeys724/PC/Static