国产一级一区二区_segui88久久综合9999_97久久夜色精品国产_欧美色网一区二区

掃一掃
關注微信公眾號

SQL注入攻擊的種類和防范手段
2008-06-23   

觀察近來的一些安全事件及其后果,安全專家們已經得到一個結論,這些威脅主要是通過SQL注入造成的。雖然前面有許多文章討論了SQL注入,但今天所討論的內容也許可幫助你檢查自己的服務器,并采取相應防范措施。

SQL注入攻擊的種類

知彼知己,方可取勝。首先要清楚SQL注入攻擊有哪些種類。

1.沒有正確過濾轉義字符

在用戶的輸入沒有為轉義字符過濾時,就會發生這種形式的注入式攻擊,它會被傳遞給一個SQL語句。這樣就會導致應用程序的終端用戶對數據庫上的語句實施操縱。比方說,下面的這行代碼就會演示這種漏洞:

statement := "SELECT * FROM users WHERE name = '" + userName + "';"

這種代碼的設計目的是將一個特定的用戶從其用戶表中取出,但是,如果用戶名被一個惡意的用戶用一種特定的方式偽造,這個語句所執行的操作可能就不僅僅是代碼的作者所期望的那樣了。例如,將用戶名變量(即username)設置為:

a' or 't'='t,此時原始語句發生了變化:

SELECT * FROM users WHERE name = 'a' OR 't'='t';

如果這種代碼被用于一個認證過程,那么這個例子就能夠強迫選擇一個合法的用戶名,因為賦值't'='t永遠是正確的。

在一些SQL服務器上,如在SQL Server中,任何一個SQL命令都可以通過這種方法被注入,包括執行多個語句。下面語句中的username的值將會導致刪除“users”表,又可以從“data”表中選擇所有的數據(實際上就是透露了每一個用戶的信息)。

a';DROP TABLE users; SELECT * FROM data WHERE name LIKE '%

這就將最終的SQL語句變成下面這個樣子:

SELECT * FROM users WHERE name = 'a';DROP TABLE users; SELECT * 
FROM DATA WHERE name LIKE '%';

其它的SQL執行不會將執行同樣查詢中的多個命令作為一項安全措施。這會防止攻擊者注入完全獨立的查詢,不過卻不會阻止攻擊者修改查詢。

2.Incorrect type handling

如果一個用戶提供的字段并非一個強類型,或者沒有實施類型強制,就會發生這種形式的攻擊。當在一個SQL語句中使用一個數字字段時,如果程序員沒有檢查用戶輸入的合法性(是否為數字型)就會發生這種攻擊。例如:

statement := "SELECT * FROM data WHERE id = " + a_variable + ";"

從這個語句可以看出,作者希望a_variable是一個與“id”字段有關的數字。不過,如果終端用戶選擇一個字符串,就繞過了對轉義字符的需要。例如,將a_variable設置為:1;DROP TABLE users,它會將“users”表從數據庫中刪除,SQL語句變成:SELECT * FROM DATA WHERE id = 1;DROP TABLE users;

3.數據庫服務器中的漏洞

有時,數據庫服務器軟件中也存在著漏洞,如MYSQL服務器中mysql_real_escape_string()函數漏洞。這種漏洞允許一個攻擊者根據錯誤的統一字符編碼執行一次成功的SQL注入式攻擊。

4.盲目SQL注入式攻擊

當一個Web應用程序易于遭受攻擊而其結果對攻擊者卻不見時,就會發生所謂的盲目SQL注入式攻擊。有漏洞的網頁可能并不會顯示數據,而是根據注入到合法語句中的邏輯語句的結果顯示不同的內容。這種攻擊相當耗時,因為必須為每一個獲得的字節而精心構造一個新的語句。但是一旦漏洞的位置和目標信息的位置被確立以后,一種稱為Absinthe的工具就可以使這種攻擊自動化。

5.條件響應

注意,有一種SQL注入迫使數據庫在一個普通的應用程序屏幕上計算一個邏輯語句的值:

SELECT booktitle FROM booklist WHERE bookId = 'OOk14cd' AND 1=1

這會導致一個標準的面面,而語句

SELECT booktitle FROM booklist WHERE bookId = 'OOk14cd' AND 1=2在頁面易于受到SQL注入式攻擊時,它有可能給出一個不同的結果。如此這般的一次注入將會證明盲目的SQL注入是可能的,它會使攻擊者根據另外一個表中的某字段內容設計可以評判真偽的語句。

6.條件性差錯

如果WHERE語句為真,這種類型的盲目SQL注入會迫使數據庫評判一個引起錯誤的語句,從而導致一個SQL錯誤。例如:

SELECT 1/0 FROM users WHERE username='Ralph'。顯然,如果用戶Ralph存在的話,被零除將導致錯誤。

7.時間延誤

時間延誤是一種盲目的SQL注入,根據所注入的邏輯,它可以導致SQL引擎執行一個長隊列或者是一個時間延誤語句。攻擊者可以衡量頁面加載的時間,從而決定所注入的語句是否為真。

以上僅是對SQL攻擊的粗略分類。但從技術上講,如今的SQL注入攻擊者們在如何找出有漏洞的網站方面更加聰明,也更加全面了。出現了一些新型的SQL攻擊手段。黑客們可以使用各種工具來加速漏洞的利用過程。我們不妨看看the Asprox Trojan這種木馬,它主要通過一個發布郵件的僵尸網絡來傳播,其整個工作過程可以這樣描述:首先,通過受到控制的主機發送的垃圾郵件將此木馬安裝到電腦上,然后,受到此木馬感染的電腦會下載一段二進制代碼,在其啟動時,它會使用搜索引擎搜索用微軟的ASP技術建立表單的、有漏洞的網站。搜索的結果就成為SQL注入攻擊的靶子清單。接著,這個木馬會向這些站點發動SQL注入式攻擊,使有些網站受到控制、破壞。訪問這些受到控制和破壞的網站的用戶將會受到欺騙,從另外一個站點下載一段惡意的JavaScript代碼。最后,這段代碼將用戶指引到第三個站點,這里有更多的惡意軟件,如竊取口令的木馬。

以前,我們經常警告或建議Web應用程序的程序員們對其代碼進行測試并打補丁,雖然SQL注入漏洞被發現和利用的機率并不太高。但近來攻擊者們越來越多地發現并惡意地利用這些漏洞。因此,在部署其軟件之前,開發人員應當更加主動地測試其代碼,并在新的漏洞出現后立即對代碼打補丁。

防御和檢查SQL注入的手段

1.使用參數化的過濾性語句

要防御SQL注入,用戶的輸入就絕對不能直接被嵌入到SQL語句中。恰恰相反,用戶的輸入必須進行過濾,或者使用參數化的語句。參數化的語句使用參數而不是將用戶輸入嵌入到語句中。在多數情況中,SQL語句就得以修正。然后,用戶輸入就被限于一個參數。下面是一個使用Java和JDBC API例子:

PreparedStatement prep = conn.prepareStatement("SELECT * FROM USERS WHERE
PASSWORD=?");

prep.setString(1, pwd);

總體上講,有兩種方法可以保證應用程序不易受到SQL注入的攻擊,一是使用代碼復查,二是強迫使用參數化語句的。強迫使用參數化的語句意味著嵌入用戶輸入的SQL語句在運行時將被拒絕。不過,目前支持這種特性的并不多。如H2 數據庫引擎就支持。

2.還要避免使用解釋程序,因為這正是黑客們借以執行非法命令的手段。

3.防范SQL注入,還要避免出現一些詳細的錯誤消息,因為黑客們可以利用這些消息。要使用一種標準的輸入確認機制來驗證所有的輸入數據的長度、類型、語句、企業規則等。

4.使用專業的漏洞掃描工具。但防御SQL注入攻擊也是不夠的。攻擊者們目前正在自動搜索攻擊目標并實施攻擊。其技術甚至可以輕易地被應用于其它的Web架構中的漏洞。企業應當投資于一些專業的漏洞掃描工具,如大名鼎鼎的Acunetix的Web漏洞掃描程序等。一個完善的漏洞掃描程序不同于網絡掃描程序,它專門查找網站上的SQL注入式漏洞。最新的漏洞掃描程序可以查找最新發現的漏洞。

5.最后一點,企業要在Web應用程序開發過程的所有階段實施代碼的安全檢查。首先,要在部署Web應用之前實施安全測試,這種措施的意義比以前更大、更深遠。企業還應當在部署之后用漏洞掃描工具和站點監視工具對網站進行測試。

Web安全拉警報已經響起,安全形式異常嚴峻,企業絕對不應當草率從事。安全重于泰山!


熱詞搜索:

上一篇:保衛好電腦,否則你肯定抓狂
下一篇:用入侵檢測系統提高安全系數

分享到: 收藏
国产一级一区二区_segui88久久综合9999_97久久夜色精品国产_欧美色网一区二区
亚洲午夜激情| 国产欧美一区二区精品性| 免费观看成人网| 午夜影视日本亚洲欧洲精品| 在线视频一区观看| 欧美日韩一区二区三区免费看| 亚洲国产小视频在线观看| 欧美1区2区| 欧美激情一区二区三区四区| 欧美日韩精品免费在线观看视频| 欧美三级电影大全| 国产精品天天摸av网| 一区精品在线播放| 一区二区三区欧美激情| 老巨人导航500精品| 久久网站免费| 国产精品自拍网站| 欧美日本在线播放| 国产精品一区二区三区免费观看| 亚洲欧洲午夜| 久久综合九色九九| 国内精品久久久久影院色| 亚洲欧美国产制服动漫| 欧美成人精品在线| 国模私拍视频一区| 久久精品麻豆| 亚洲黄色一区| 欧美日产在线观看| 亚洲欧美色婷婷| 美脚丝袜一区二区三区在线观看| 欧美激情一区二区三区成人| 亚洲午夜视频在线| 日韩一级欧洲| 国产欧美91| 欧美xxx在线观看| 在线视频精品一| 国产精品热久久久久夜色精品三区| 亚洲欧美一区二区原创| 国产精品一区二区a| 欧美一区在线看| 亚洲高清中文字幕| 欧美丝袜一区二区| 久热精品在线视频| 欧美在线视屏 | 亚洲欧美日韩综合一区| 国产一区二区中文| 欧美日韩国产影院| 久久野战av| 一个色综合av| 国产资源精品在线观看| 欧美大成色www永久网站婷| 亚洲一区二区久久| 亚洲乱码精品一二三四区日韩在线| 国产精品伦子伦免费视频| 欧美肥婆bbw| 久久久99国产精品免费| 亚洲欧美激情一区| 久久久久久久999精品视频| 国产一区二三区| 国产日本精品| 国产专区精品视频| 在线成人免费观看| 一区二区高清视频| 国产老女人精品毛片久久| 国产精品日韩一区二区| 欧美日韩四区| 国产精品日韩欧美一区| 国产欧美日韩亚洲精品| 激情懂色av一区av二区av| 亚洲第一区色| 亚洲一区免费| 美国成人直播| 国产精品久久久91| 国产欧美一区二区精品秋霞影院| 狠狠色综合色综合网络| 亚洲人成小说网站色在线| 亚洲欧美日韩中文播放| 久久另类ts人妖一区二区| 欧美日韩亚洲在线| 在线观看视频一区二区| 一本久久青青| 久久久久久久一区二区三区| 欧美a级片网站| 国产欧美日韩三级| 91久久久一线二线三线品牌| 欧美一区二区三区免费大片| 欧美另类久久久品| 国产一区二区三区视频在线观看 | 91久久亚洲| 欧美成年人视频网站| 欧美高清视频一二三区| 国产精品久久久久久久久久三级| 136国产福利精品导航| 欧美一级大片在线观看| 欧美日韩精品不卡| 最新热久久免费视频| 久久夜色精品国产噜噜av| 国产精品免费一区豆花| 中文日韩在线| 欧美少妇一区二区| 一本一本久久a久久精品综合麻豆| 久久天天躁夜夜躁狠狠躁2022 | 久久精品国产v日韩v亚洲| 欧美性色综合| 亚洲综合成人婷婷小说| 黄色工厂这里只有精品| 亚洲欧美日韩国产精品| 国产精品午夜在线观看| 国产精品永久免费| 欧美中文字幕在线播放| 国内伊人久久久久久网站视频| 久久精品视频免费观看| 伊人久久亚洲美女图片| 欧美成人中文字幕在线| 亚洲人成网站影音先锋播放| 欧美激情中文不卡| 午夜伦欧美伦电影理论片| 国产一区二区久久久| 欧美电影在线| 香蕉成人伊视频在线观看| 亚洲高清一二三区| 国产精品视频一二三| 免费黄网站欧美| 久久久久中文| 亚洲视频日本| 国产一区二区高清不卡| 欧美女主播在线| 久久久999精品| 亚洲午夜在线| 日韩图片一区| 在线精品视频一区二区三四| 国产精品一区视频网站| 欧美日产一区二区三区在线观看| 欧美在线免费观看亚洲| 亚洲一区二区高清视频| 日韩视频在线免费观看| 亚洲观看高清完整版在线观看| 91久久久亚洲精品| 亚洲国产精品久久| 在线免费观看一区二区三区| 国产午夜精品理论片a级探花| 欧美日本成人| 欧美日本中文字幕| 欧美日韩成人激情| 欧美日韩在线三级| 欧美精品97| 欧美日韩卡一卡二| 欧美日本国产视频| 欧美日韩一区二区视频在线观看| 免费观看不卡av| 欧美成人午夜激情在线| 欧美人与性动交cc0o| 欧美日韩国产成人在线91| 欧美激情麻豆| 国产精品卡一卡二卡三| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ入口 | 欧美一区二区三区久久精品 | 欧美在线播放高清精品| 欧美极品影院| 国产精品欧美一区喷水| 国内揄拍国内精品久久| 91久久精品国产91久久性色tv| 亚洲精品国产系列| 一区二区三区久久| 亚洲一区二区三区四区视频| 欧美中文字幕在线观看| 欧美大片91| 国产久一道中文一区| 亚洲国产精品视频| 欧美一区二区三区免费观看视频| 久久一区二区视频| 国产精品系列在线播放| 亚洲欧洲在线观看| 久久久久久久成人| 国产精品久久久久久久久动漫| 亚洲国产精品久久久久秋霞不卡 | 亚洲欧美日韩国产成人| 久久亚洲精品一区二区| 国产精品色婷婷| 亚洲三级观看| 嫩草成人www欧美| 一区二区三区在线视频观看 | 久久精品日韩| 国产精品一区久久久久| 一区二区三区久久| 欧美精品日韩三级| 亚洲风情亚aⅴ在线发布| 久久精品国产亚洲5555| 国产视频欧美| 久久久99久久精品女同性| 国产精品一页| 欧美一区成人| 亚洲成色777777在线观看影院| 久久99伊人| 亚洲电影视频在线| 欧美www在线| 国产精品99久久久久久宅男| 国产精品日韩欧美综合| 欧美一二区视频| 狠狠色狠狠色综合日日五|