999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

SQL注入式攻擊分析

2009-04-29 00:00:00
電腦知識(shí)與技術(shù) 2009年14期

摘要:計(jì)算機(jī)網(wǎng)絡(luò)的飛速發(fā)展,使得人們對(duì)于網(wǎng)絡(luò)安全越來(lái)越關(guān)注。隨著多起SQL注入式攻擊案例的出現(xiàn)。大家已經(jīng)開(kāi)始逐步的關(guān)心這類(lèi)問(wèn)題。該文針對(duì)當(dāng)今的SQL注入式攻擊的特點(diǎn)進(jìn)行闡述。對(duì)大家認(rèn)清SQL注入式攻擊有一定的參考價(jià)值。

關(guān)鍵詞:Web應(yīng)用;SQL;注入式攻擊;Web安全

中圖分類(lèi)號(hào):TP393文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1009-3044(2009)14-3587-02

The Analysis of SQL Injection Attacks

LIU Bin

(Panzhihua University, Panzhihua 617000, China)

Abstract: The rapid development of computer networks, making it a growing concern for network security. With the number of cases SQL injection attacks to happen. We have begun to care about these problems step-by-step. for the Features of the current SQL injection attacks, this paper giving us a certain reference value to get to know it.

Key words: Web application; SQL; Injection attacks; Web Security

1 引言

分布式Web應(yīng)用的飛速發(fā)展使得軟件系統(tǒng)的體系結(jié)構(gòu)在一定程度上由C/S模式偏向于B/S模式,其平臺(tái)架構(gòu)大多采用ASP(.NET)+SQL+IIS的模式。由于程序編寫(xiě)人員的水平參差不齊,使得很多程序員設(shè)計(jì)出來(lái)的產(chǎn)品存在著各種安全隱患。其中一個(gè)常見(jiàn)的安全隱患就是SQL注入式攻擊。本文從SQL注入式攻擊的原理和方法上進(jìn)行分析,提出防范的一些解決方法,從而在一定程度上幫助大家解決對(duì)SQL注入進(jìn)行攻擊的問(wèn)題。

2 SQL注入式攻擊簡(jiǎn)介

2.1 相關(guān)基礎(chǔ)知識(shí)

SQL語(yǔ)言是一種用于關(guān)系數(shù)據(jù)庫(kù)的結(jié)構(gòu)化查詢語(yǔ)言。其典型的執(zhí)行語(yǔ)句是query。它可以修改數(shù)據(jù)庫(kù)結(jié)構(gòu)和操作數(shù)據(jù)庫(kù)內(nèi)容。假如攻擊者通過(guò)往query中插入一系列的SQL語(yǔ)句來(lái)操作數(shù)據(jù)寫(xiě)入到應(yīng)用程序中去,我們把這種方法定義成SQL注入。SQL注入是一種攻擊方式,在這種攻擊方式中,惡意代碼被插入到字符串中,然后將該字符串傳遞到SQLServer進(jìn)行分析和執(zhí)行。SQL 注入攻擊技術(shù)在國(guó)際上最早出現(xiàn)于1999年,2002年后,我國(guó)開(kāi)始大量出現(xiàn)此類(lèi)問(wèn)題。它有兩種形式,一種是腳本注入式的攻擊,另外一種是惡意用戶輸入用來(lái)影響被執(zhí)行的SQL腳本。

2.2 攻擊原理及過(guò)程

SQL注入是目前比較常見(jiàn)的針對(duì)數(shù)據(jù)庫(kù)的一種攻擊方式。攻擊者從正常的網(wǎng)頁(yè)端口對(duì)網(wǎng)頁(yè)進(jìn)行訪問(wèn),當(dāng)遇到網(wǎng)頁(yè)需要查詢數(shù)據(jù)庫(kù)時(shí),通過(guò)把一些含有特殊含義的語(yǔ)句綁定到SQL語(yǔ)句中等方式改變用戶的初衷,從而達(dá)到攻擊者篡改數(shù)據(jù)等非法的目的。

引言中我們已提到,現(xiàn)在的軟件設(shè)計(jì)平臺(tái)架構(gòu)大多采用ASP(.NET)+SQL+IIS的模式。ASP頁(yè)面客戶端和服務(wù)器進(jìn)行數(shù)據(jù)交流有兩種方式。一是客戶端向服務(wù)器發(fā)送請(qǐng)求所采用的POST方式,其特點(diǎn)是不需要在URL中顯示,且傳輸數(shù)據(jù)量較大;另外一個(gè)方面是客戶端要從服務(wù)器取得數(shù)據(jù)所采用的GET方式,它需要在URL中顯示出來(lái),并受到URL長(zhǎng)度限制。傳送的數(shù)據(jù)量很小。

一般ASP.NET的Web應(yīng)用都有一個(gè)登錄頁(yè)面,識(shí)別用戶的身份與權(quán)限。大部分網(wǎng)站的用戶登錄驗(yàn)證程序都是采用POST方法提交用戶名和密碼兩個(gè)參數(shù),登錄頁(yè)面中輸入的內(nèi)容將直接用來(lái)構(gòu)造動(dòng)態(tài)的SQL命令,或者直接用作存儲(chǔ)過(guò)程的參數(shù),如:

System.Text.StringBuilder query = new System.Text.StringBuilder(

\"SELECT * from Users WHERE login =' '\")

.Append(txtLogin.Text).Append(\"' AND password=' '\")

.Append(txtPassword.Text).Append(\"'\");

如果用戶在輸入內(nèi)容中輸入有“1=1”之類(lèi)的內(nèi)容,則提交給服務(wù)器后,服務(wù)器構(gòu)造出的SQL語(yǔ)句為:

Select * from users where login=\"user\" or 1=1and password=\"pwd\"\"or 1=1

我們看看其執(zhí)行情況。由于SQL命令實(shí)際上已被注入式攻擊修改,已經(jīng)不能真正驗(yàn)證用戶身份,所以系統(tǒng)會(huì)錯(cuò)誤地授權(quán)給攻擊者。在SQL語(yǔ)句中,“l(fā)ogin=\"user\" or 1=1”以及“password=\"pwd\"\"or 1=1”均是邏輯“或”的判斷。即兩個(gè)條件中任何一個(gè)成立,那么表達(dá)式成立,而的1=1是肯定成立的。也就是說(shuō)整個(gè)表達(dá)式的值始終成立。這樣查詢語(yǔ)句就通過(guò)了,從而就可以進(jìn)入到管理界面。

以上是一個(gè)利用POST方法實(shí)現(xiàn)攻擊的例子,實(shí)際上利用GET方法實(shí)現(xiàn)攻擊的應(yīng)用更加廣泛。例如訪問(wèn)某網(wǎng)站的地址如下:

http://www.***.com/showdetail.asp?id=2。如果在地址之后加一單引號(hào)。則服務(wù)器會(huì)報(bào)錯(cuò):

Microsoft JET Database Engine 錯(cuò)誤 '80040e14'

字符串的語(yǔ)法錯(cuò)誤在查詢表達(dá)式“ID=2”中。

/showdetail.asp,行8

從其報(bào)錯(cuò)信息,我們分析出,

1) 網(wǎng)站使用的是Access數(shù)據(jù)庫(kù),通過(guò)JET引擎連接數(shù)據(jù)庫(kù)。

2) 程序沒(méi)有判斷客戶端提交的數(shù)據(jù)是否符合程序要求。

3) 該SQL語(yǔ)句所查詢的表中有一名為ID的字段。

從以上信息我們可以簡(jiǎn)單分析出SQL注入式攻擊的一般過(guò)程[3]:

1) 找到SQL注入點(diǎn)的位置。這是進(jìn)行SQL注入式攻擊的切入點(diǎn)。

2) 判斷后臺(tái)數(shù)據(jù)庫(kù)的類(lèi)型。不同的數(shù)據(jù)庫(kù)有不同的攻擊方法,因此攻擊者必須正確判斷出后臺(tái)數(shù)據(jù)庫(kù)的類(lèi)型。目前常用的數(shù)據(jù)庫(kù)為ACCESS、SQL-SERVER以及ORACAL。

3) 查看XP_CMDSHELL的可執(zhí)行情況。即:判斷當(dāng)前連接數(shù)據(jù)的帳號(hào)是否具有SA權(quán)限,且master.dbo.xp_cmdshell擴(kuò)展存儲(chǔ)過(guò)程(調(diào)用此存儲(chǔ)過(guò)程可以直接使用操作系統(tǒng)的shell)能夠正確執(zhí)行。

4) 找到Web虛擬目錄的位置,上傳ASP木馬。這一步主要是找到放置ASP木馬的位置,進(jìn)而得到USER權(quán)限。然后把木馬放入Web虛擬目錄的Scripts下,遠(yuǎn)程客戶通過(guò)IE就可執(zhí)行它,進(jìn)而得到系統(tǒng)的USER權(quán)限,實(shí)現(xiàn)對(duì)系統(tǒng)的初步控制。

5) 獲得管理員權(quán)限。

3 SQL注入攻擊防范

在了解了SQL注入式攻擊的原理之后,我們將分析如何對(duì)其進(jìn)行防范。綜合各方面因素,總結(jié)如下:

1) 檢查輸入的 SQL 語(yǔ)句內(nèi)容,過(guò)濾敏感字符。比如:', >, <=, !, -, +, *, /, |, 空格等。

2) 加強(qiáng)對(duì)用戶輸入的驗(yàn)證。

這里指檢查用戶輸入的合法性,確信輸入的內(nèi)容只包含合法的數(shù)據(jù)。總體來(lái)說(shuō),防治SQL注入式攻擊可以采用兩種方法,一是加強(qiáng)對(duì)用戶輸入內(nèi)容的檢查與驗(yàn)證;二是強(qiáng)迫使用參數(shù)化語(yǔ)句來(lái)傳遞用戶輸入的內(nèi)容。在SQLServer數(shù)據(jù)庫(kù)中,有較多的用戶輸入內(nèi)容驗(yàn)證工具可以抵制SQL注入式攻擊。協(xié)助管理員管理。

再則,我們可以使用存儲(chǔ)過(guò)程來(lái)驗(yàn)證用戶的輸入。利用存儲(chǔ)過(guò)程可以實(shí)現(xiàn)對(duì)用戶輸入變量的過(guò)濾,比如拒絕一些特殊的符號(hào)等等。在以上惡意代碼中,只要存儲(chǔ)過(guò)程把那個(gè)分號(hào)過(guò)濾掉,那么這個(gè)惡意代碼也就沒(méi)有用武之地了。在執(zhí)行SQL語(yǔ)句之前,可以通過(guò)數(shù)據(jù)庫(kù)的存儲(chǔ)過(guò)程,來(lái)拒絕接納一些特殊的符號(hào)。

另外,通過(guò)測(cè)試類(lèi)型、長(zhǎng)度、格式和范圍來(lái)驗(yàn)證用戶輸入,過(guò)濾用戶輸入的內(nèi)容。這些都是防止SQL注入式攻擊的常見(jiàn)并且行之有效的措施。

3) 區(qū)分不同帳戶的權(quán)限。分配給不同類(lèi)型的用戶以不同的權(quán)限,可以最大限度的減少注入式攻擊對(duì)數(shù)據(jù)庫(kù)帶來(lái)的危害。特別是不要用dbo或者sa賬戶。比如對(duì)于普通的終端用戶,因?yàn)樗麄兪擒浖鞘褂谜撸⒉粻可娴綄?duì)數(shù)據(jù)庫(kù)的設(shè)計(jì)操作,要使其具有最小的權(quán)限。那么即使在他們使用SQL語(yǔ)句中帶有嵌入式的惡意代碼,由于權(quán)限的限制,這些代碼也將無(wú)法被執(zhí)行。因而也就防止了原本用于執(zhí)行SELECT命令的地方卻被用于執(zhí)行INSERT、UPDATE或DELETE命令。

4) 采用加密機(jī)制。加密用戶輸入的數(shù)據(jù),然后再將它與數(shù)據(jù)庫(kù)中保存的數(shù)據(jù)比較,這相當(dāng)于對(duì)用戶輸入的數(shù)據(jù)進(jìn)行了“消毒”處理,用戶輸入的數(shù)據(jù)不再對(duì)數(shù)據(jù)庫(kù)有任何特殊的意義,從而也就防止了攻擊者注入SQL命令。System.Web.Security.FormsAuthentication類(lèi)有一個(gè)HashPasswordForStoringInConfigFile,非常適合于對(duì)輸入數(shù)據(jù)進(jìn)行消毒處理。

5) 使用專(zhuān)業(yè)的漏洞掃描工具。通過(guò)使用一些微軟發(fā)布的專(zhuān)業(yè)漏洞掃描工具,可以幫助我們更好的識(shí)別哪些地方將是SQL注入式攻擊的著手點(diǎn)。然后程序員再根據(jù)其漏洞進(jìn)行修補(bǔ)完善處理。

6) 定期檢查IIS日志和數(shù)據(jù)表。由于攻擊程序是通過(guò)URI請(qǐng)求字符串來(lái)觸發(fā),管理員們可以定期檢查IIS日志,查看其中的異常請(qǐng)求。如果IIS日志表明服務(wù)器可能已經(jīng)被攻擊,那么下一步就要檢查相應(yīng)的Web應(yīng)用所使用到的數(shù)據(jù)庫(kù)中的表格,并找出附加在文本內(nèi)容中的

主站蜘蛛池模板: 久久久久亚洲精品成人网| 91久久夜色精品国产网站 | 波多野结衣一区二区三视频| 毛片卡一卡二| 婷婷激情亚洲| 性视频久久| 色综合天天综合中文网| 国产毛片高清一级国语| 日本欧美成人免费| 国产成人精品男人的天堂| 国产精品jizz在线观看软件| 精品视频福利| 国产精品对白刺激| 亚洲床戏一区| 婷婷六月综合网| 国产91麻豆视频| 男人天堂亚洲天堂| 日本欧美视频在线观看| 99在线视频精品| 亚洲天堂久久新| 日本不卡在线视频| 亚洲国产精品美女| 亚洲熟妇AV日韩熟妇在线| 国产黑人在线| h网站在线播放| 日韩欧美亚洲国产成人综合| 久久人人爽人人爽人人片aV东京热| 毛片在线看网站| 免费毛片全部不收费的| 欧美日本在线观看| 亚洲AV永久无码精品古装片| 老司机午夜精品网站在线观看| 5388国产亚洲欧美在线观看| 免费人成在线观看成人片| 欧美日韩福利| 999精品色在线观看| 国产丝袜无码一区二区视频| 亚洲妓女综合网995久久| 国产精品成人AⅤ在线一二三四 | 亚洲无码免费黄色网址| 亚洲天堂日韩av电影| 国产精品永久免费嫩草研究院| 国产又黄又硬又粗| 亚洲国产第一区二区香蕉| 日韩a级片视频| 国产性生交xxxxx免费| 综合网天天| 亚洲天堂.com| 欧美日韩在线成人| 少妇精品网站| 亚洲欧美精品日韩欧美| julia中文字幕久久亚洲| 亚洲一区二区三区国产精华液| 美女免费黄网站| 一级毛片免费观看久| 婷婷六月激情综合一区| 免费av一区二区三区在线| 好紧太爽了视频免费无码| 亚洲AV色香蕉一区二区| 国产麻豆福利av在线播放 | 草草影院国产第一页| 国产精品亚洲五月天高清| 乱人伦中文视频在线观看免费| 久操线在视频在线观看| 色老二精品视频在线观看| 国产91视频免费观看| 久久久国产精品无码专区| 美女国内精品自产拍在线播放| 成人免费网站久久久| 免费毛片视频| 亚洲欧美自拍视频| 制服丝袜国产精品| 亚洲免费三区| 国产精品久久久久久搜索| 日韩精品无码免费专网站| 色网站免费在线观看| a级毛片免费网站| 亚洲国语自产一区第二页| 99久视频| 尤物视频一区| a级毛片在线免费观看| 亚洲天堂高清|