?

SQL注入攻擊行為的產生原理與工作過程

2018-01-17 09:55卜旭
電子技術與軟件工程 2017年23期
關鍵詞:數據庫

摘 要 近幾年計算機技術以及基于Web網頁開發技術的發展,各種各樣針對Web網頁的攻擊行為也高頻發生,其中SQL注入攻擊行為是所有攻擊行為中經常使用的一種攻擊行為。SQL注入攻擊簡單來說就是從普通的端口進行訪問,以達到對用戶數據庫中的數據信息進行掃描或盜取等攻擊和破壞行為。SQL注入攻擊行為表面上看,通常和一般的Web頁面訪問過程并無實質性的差異,如果程序設計人員在數據發送給SQL查詢之前沒有對其發送的數據參數進行有效驗證,這種情況就可能出現SQL注入漏洞。本文是針對SQL注入攻擊行為的產生原理和工作過程進行詳細分析與研究。

【關鍵詞】SQL注入 Web 數據庫 攻擊流程

1 SQL注入攻擊與特點

1.1 SQL注入攻擊概念

SQL注入攻擊是指黑客尋找web應用程序中的漏洞或用戶能夠提交及篡改的數據頁面,精心構造惡意的特殊SQL語句,把這些特殊的SQL指令語句插入到系統中原有的SQL語句中,通過執行這些語句獲取用戶密鑰等敏感信息,還能獲取主機管理員權限以攻擊原有系統。

1.2 SQL注入攻擊特點

針對于個人用戶而言,經常使用到的個人電腦防范措施就是安裝防火墻,然而對于SQL注入攻擊來說,其對SQL注入漏洞是沒有防范的有效措施。在通常情況下防火墻只是對合法用戶在進行服務器端數據訪問時允許Web服務器的正常連接,但是如果有SQL注入漏洞出現,則攻擊者就會利用漏洞獲得服務器的訪問權限。因此,根據SQL注入攻擊行為通常對用戶數據庫的攻擊以及獲得服務器端的訪問權限,可以看出SQL注入行為具有以下三個特點:

1.2.1 普遍性

利用SQL語句和語法來進行SQL的攻擊過程,因此當Web運行的應用程序一旦忘記對獲得的SQL語句進行嚴密的過濾,就有可能造成SQL注入漏洞的出現。

1.2.2 技術要求低

在SQL注入技術出現后,由于其方便操作和可以避開防火墻進行攻擊,形成注入漏洞,黑客利用該特點開發了各種SQL注入工具,這些工具可以輕易的對已經存在有SQL漏洞Web應用程序或網站進行有效攻擊,從而獲得系統控制權和使用權。

1.2.3 危害性大

在整個攻擊過程中,一旦SQL攻擊獲得成功,等于系統的控制大門敞開,這樣就會對用戶造成無法避免的損失,例如文件篡改、密碼丟失等情況,嚴重的會造成巨大的經濟損失。

2 SQL注入產生原理

SQL注入攻擊行為是指黑客可以不經過過濾機制實現訪問計算機端口,實現控制遠程服務器上的數據庫。目前,開發人員在進行Web網站或網頁開發的過程中,絕大多數的開發人員都使用SQL語言來存儲相應的應用程序在運行過程中所需要的應用數據信息,而存放這些應用程序中涉及的數據也是利用例如像MySQL這樣的SQL數據庫。跟其他語言一樣,SQL語法允許數據庫命令和用戶數據混合在一起。如果開發人員對SQL語言使用不嚴謹,用戶數據可能會被解釋成命令。這樣遠程用戶不但能向Web應用程序輸入數據,而且還能在數據庫上執行任意命令。因此對于SQL注入攻擊行為其產生的原理如下所描述[1]:

(1)SQL命令可查詢、插入、更新、刪除等,命令的串接,而以分號字符為不同命令的區別。

(2)SQL命令對傳入的字符串參數使用單引號字符,但連續2個單引號字符,在SQL數據庫中,則視為字符串中的一個單引號字符。

(3)SQL命令中,可以注入注解,連續2個減號字符 -- 后的文字為注解,或“/*”與“*/”所包起來的文字為注解。

(4)如果在組合SQL的命令字符串時,未針對單引號字符進行替換處理的話,會導致該字符變量在數輸入命令字符串時,被惡意篡改原來的SQL語法的作用,形成了新的語法。

3 SQL注入攻擊思路與攻擊過程

3.1 SQL注入攻擊思路描述

在SQL攻擊過程中,其攻擊的目的主要是通過尋找網站或網頁中存在的漏洞作為注入點,然后設置注入SQL語句來實現對用戶端端口的控制,從而獲得遠程服務器端的數據訪問權限,達到對用戶存儲在數據庫中的數據信息進行盜取或篡改的破壞行為。由此,SQL注入攻擊行為可以總結如下大體思路:

(1)攻擊者訪問存在SQL注入的網站,尋找注入點,一般使用單引號進行注入點測試。

(2)攻擊者構造注入語句,使注入語句與代碼中的SQL語句結合生成新的語句,可是使用判斷語句and。

(3)新的SQL語句被提交到數據庫中,新的SQL語句與數據庫中的語句進行了拼接,從而產生了攻擊者想要的執行語句。

(4)數據庫執行了新的SQL語句,從而引發了原本不是系統管理員想要執行的結果,這樣就產生了SQL注入。

3.2 SQL注入攻擊過程分析

在整個SQL注入攻擊過程中,可以分為以下幾個階段:

3.2.1 SQL注入漏洞的判斷

SQL注入一般存在于網址后帶有數字參數的動態網頁中,有的動態網頁中可能只存在一個參數,有的有多個參數,有的是數字型參數,有的是字符串型參數,不能一概而論??傊坏┦菐в袇档膭討B網頁訪問了數據庫,那么就有可能存在SQL注入。如果開發人員沒有安全意識,沒有添加過濾機制,存在SQL注入的可能性就非常大。

3.2.2 分析數據庫服務器類型

ACCESS與SQL SERVER是最常使用的數據庫服務器,雖然它們都支持T-SQL標準,但還有差異之處,并且不同的數據庫有不同的攻擊措施,必須要區別對待。

3.2.3 發現Web虛擬目錄

找到Web虛擬目錄,才可以確定放置php木馬的位置,進而得到user 權限。

3.2.4 上傳木馬

放入Web虛擬目錄的Scripts下,木馬病毒可以通過瀏覽器執行它,從而得到系統的用戶權限,實現對系統的初步控制。

3.2.5 得到系統的管理員權限

木馬只有用戶權限,要想獲取對系統的完全控制,還要有系統的管理員權限。

通過分析可以看出,針對SQL注入攻擊流程是一個有著有序的注入攻擊行為。由開始的漏洞判斷到獲得系統的管理權限。利用圖1可以描述整個SQL注入攻擊流程。

4 總結

從應用層到數據存儲層的開發和管理行為會導致SQL注入問題,我們討論了動態字符串的構造以及將SQL查詢組合成一個字符串,并與用戶提供的輸入連接操作引發SQL注入,因為攻擊者可以修改SQL查詢的邏輯和結構,進而執行完全違背開發人員初衷的數據庫命令。

參考文獻

[1]劉文生,樂德廣,劉偉.SQL注入攻擊與防御技術研究[J].信息網絡安全,2015(09).

[2]張博.SQL注入攻擊與檢測技術研究[J].信息安全與通信保密,2010(05).

[3]余志高,周國祥.Web應用中SQL注入攻擊研究[J].信息安全與通信保密,2010(04).

[4]齊林,王靜云,蔡凌云,陳寧波.SQL注入攻擊檢測與防御研究[J].河北科技大學學報,2012(06).

[5]劉文晉.遠程滲透測試中的SQL注入攻擊技術研究[D].北京交通大學,2009.

作者簡介

卜旭(1986-),男,現為長春建筑學院電氣信息學院助教。主要研究方向為計算機軟件設計、網絡安全。

作者單位

長春建筑學院電氣信息學院 吉林省長春市 130607endprint

猜你喜歡
數據庫
超星數據庫錄入證
本刊加入數據庫的聲明
兩種新的非確定數據庫上的Top-K查詢
國外數據庫高被引論文排行TOP10
國內主要期刊數據庫
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合