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

加強(qiáng)互聯(lián)網(wǎng)攻擊防范技能培養(yǎng)助職校生成才

2013-12-29 00:00:00陳明
成才之路 2013年19期

摘 要:飛速發(fā)展的互聯(lián)網(wǎng)及其相關(guān)應(yīng)用,在為人們生活帶來大量便利的同時,也帶來了巨大的安全風(fēng)險,攻擊者利用Web應(yīng)用程序的安全缺陷,攻擊竊取網(wǎng)站數(shù)據(jù)庫中的敏感數(shù)據(jù)。其中SQL注入攻擊相對于其他攻擊入侵手段入門容易,防火墻不能對其有效地進(jìn)行防范,成為了黑客主要的攻擊手段之一。教師要讓學(xué)生了解SQL注入攻擊的基本原理和防范方法,加強(qiáng)互聯(lián)網(wǎng)攻擊防范技能培養(yǎng),助職校生成才。

關(guān)鍵詞:技能培養(yǎng);SQL注入攻擊;職校生成才

隨著計算機(jī)和互聯(lián)網(wǎng)的普及,以協(xié)同工作環(huán)境、社會性網(wǎng)絡(luò)服務(wù)及托管應(yīng)用程序為代表的基于B/S模式(即Browser/Server結(jié)構(gòu))開發(fā)的WEB技術(shù),在為人們生活帶來大量便利的同時,也帶來了巨大的安全風(fēng)險,攻擊者利用Web應(yīng)用程序的安全缺陷,可以通過攻擊Web應(yīng)用程序,竊取網(wǎng)站數(shù)據(jù)庫中的敏感數(shù)據(jù),以及執(zhí)行某些未授權(quán)的危險操作命令。

據(jù)OWASP組織統(tǒng)計,包括SQL注入、惡意腳本注入、Shell注入和其他注入攻擊在內(nèi)的代碼注入是針對Web應(yīng)用程序的主流攻擊技術(shù)之一。其中SQL注入攻擊雖然早在1997年就已經(jīng)被披露,相關(guān)的機(jī)構(gòu)也極力完善與其相關(guān)的各種漏洞,但由于使用正常的WWW端口訪問,使用的SQL語法漏洞與服務(wù)器平臺及應(yīng)用程序無關(guān),技術(shù)難度不高,防火墻不能對其進(jìn)行有效防范等特點,時至今日,依然是黑客的主要攻擊手段之一。根據(jù)數(shù)據(jù)應(yīng)用安全提供商Imperva公司2012年10月的網(wǎng)絡(luò)攻擊分析報告顯示,在黑客論壇上所有的被關(guān)注的Web應(yīng)用程序攻擊技術(shù)中,SQL注入攻擊的關(guān)注率高居榜首。

而伴隨國內(nèi)互聯(lián)網(wǎng)的飛速發(fā)展,導(dǎo)致該行業(yè)需要大量的程序員編寫B(tài)/S應(yīng)用程序滿足市場要求。由于需求量大,入門門檻不高,因而國內(nèi)許多職業(yè)技工學(xué)校開設(shè)了網(wǎng)站設(shè)計和網(wǎng)絡(luò)管理類的專業(yè),培養(yǎng)這方面的人員,滿足市場要求。然而,相當(dāng)大一部分程序員的水平及經(jīng)驗不足,在編寫代碼的時候,沒有對潛在的安全隱患進(jìn)行防范,可能導(dǎo)致網(wǎng)站輕易被攻破,造成嚴(yán)重的經(jīng)濟(jì)損失。因此,教師要讓學(xué)生了解SQL注入攻擊的基本原理和防范方法,加強(qiáng)互聯(lián)網(wǎng)攻擊防范技能培養(yǎng),讓職校生成為優(yōu)秀的專業(yè)人才。

一、SQL注入攻擊原理

SQL語言是一種一體化、高度非過程化的數(shù)據(jù)庫數(shù)據(jù)訪問的標(biāo)準(zhǔn)語言,提供了包括數(shù)據(jù)定義、數(shù)據(jù)操縱、數(shù)據(jù)控制以及最常用的數(shù)據(jù)查詢在內(nèi)的與數(shù)據(jù)庫相關(guān)的全部功能,并且SQL除了以命令方式之外,還支持以嵌入其他程序設(shè)計語言中使用的方式。

用戶訪問網(wǎng)絡(luò)上的網(wǎng)頁時,是通過后臺服務(wù)器上使用類似于“Select 相關(guān)字段 from 表名 where 條件”的查詢語句從后臺數(shù)據(jù)庫訪問,從而獲得用戶所需的數(shù)據(jù)。在這過程中,由于查詢語句是由服務(wù)器的代碼和用戶的輸入組合生成的,如果利用SQL語言中的某些特殊轉(zhuǎn)義字符,如單引號、分號,可能使得預(yù)先設(shè)定的限制無效,從而改變SQL查詢語句的執(zhí)行順序,并執(zhí)行某些非預(yù)期的SQL指令代碼,造成數(shù)據(jù)庫中的敏感信息被泄露或被篡改的嚴(yán)重后果。當(dāng)攻擊者能夠通過往查詢中插入一系列的SQL操作將數(shù)據(jù)寫入到應(yīng)用程序中去,并對數(shù)據(jù)庫實施了查詢,這時就構(gòu)成了SQL注入(SQL Injection)。

SQL注入攻擊主要是通過構(gòu)建特殊的輸入,將SQL語法中的某些組合作為參數(shù)傳入Web應(yīng)用程序,通過執(zhí)行SQL語句而執(zhí)行入侵者想要的操作。以登錄網(wǎng)站為例,假定網(wǎng)站將注冊用戶的編號、用戶名及其對應(yīng)的密碼分別存放于名為login的表中的id、uname和psw字段中,處理用戶登錄的動態(tài)頁面代碼如下:

InputUName = request.form(“uname”)

InputPSW = request.form(“psw”)

Set conn = Server.CreateObject(“ADODB.Connection”)

Conn.open“Driver = {SQL Server};Server = WEBSVR;DataBase = WebDB;UID = sa;WD = 123”

Set rso = server. CreateObject(“ADODB.RecordSet”)

sql= “SELECT * FROM login WHERE uname=”’ & InputUName&’” AND psw =”’ & InputPSW &’””

Rso.Open sql,cn

if rso.eof then

response.write(“l(fā)ogin error: username or password incorrect”)

else

response.write(“l(fā)ogin success”)

end if

輸入用戶名“guest”和密碼“123456”后,提交到后臺數(shù)據(jù)庫的查詢語句為:SELECT * FROM login WHERE uname=’guest’AND psw=’123456’.當(dāng)表login存在guest 用戶且其密碼為123456,則輸出登錄成功的信息,反之輸出錯誤提示。然而,如果攻擊者用字符串“guest’ OR ‘1’=’1”代替原有的用戶名和密碼輸入,則后臺數(shù)據(jù)庫組裝的SQL語句將會變?yōu)椋篠ELECT * FROM login WHERE uname=’guest’OR‘1’=’1’AND psw=’guest’OR‘1’=’1’. 顯然WHERE子句由于表達(dá)式‘1’=’1’是永真式而失去了作用,不能起到判別用戶是否合法的效果,所以攻擊者即使不知道用戶名和密碼,也可以成功登錄網(wǎng)站。

二、SQL注入攻擊過程

學(xué)生先要了解SQL注入攻擊過程,這樣,才能進(jìn)行有針對性地防范。SQL注入攻擊可以手工輸入,也可以通過如HDSI、Domain、NBSI等SQL注入攻擊輔助軟件,其實現(xiàn)過程可以歸納為以下幾個階段。

(1)第一步:判斷是否可以SQL注入。如果URL僅是對網(wǎng)頁的訪問,不存在SQL注入問題,如:http:// websitename/index.html就是普通的網(wǎng)頁訪問。只有對數(shù)據(jù)庫進(jìn)行動態(tài)查詢的業(yè)務(wù)才可能存在SQL注入,如:http://websitename/filename.asp?id=xxx,其中?id=xxx表示數(shù)據(jù)庫查詢變量,這種語句會在數(shù)據(jù)庫中執(zhí)行,因此可能會給數(shù)據(jù)庫帶來威脅。

(2)第二步:尋找SQL注入點。對于使用了動態(tài)查詢訪問數(shù)據(jù)庫的頁面,如果編寫代碼的程序員沒有安全意識和檢查變量類型及過濾轉(zhuǎn)義字符,則攻擊者可能利用這些漏洞,通過輸入一些特殊語句,并根據(jù)輸入特殊語句后瀏覽器返回信息,判斷數(shù)據(jù)庫類型,從而構(gòu)建數(shù)據(jù)庫查詢語句找到注入點。

尋找SQL注入點的經(jīng)典查找方法是在有參數(shù)傳入的地方添加諸如“and 1=1”“and 1=2”以及“’”等一些特殊字符,通過瀏覽器所返回的錯誤信息來判斷是否存在SQL注入。如果返回錯誤,則表明程序未對輸入的數(shù)據(jù)進(jìn)行處理,絕大部分情況下都能進(jìn)行注入。

對于形如http://websitename/filename.asp?id=xxx 的動態(tài)網(wǎng)頁, 通常數(shù)據(jù)庫的SQL操作語句是Select colummnnames from tablenames where id=xxx.為了確定網(wǎng)頁是否存在注入點,通常將參數(shù)xxx設(shè)為三種不同的字符串。①xxx’.在輸入數(shù)據(jù)后加單引號,將會導(dǎo)致引號不匹配引起的SQL錯誤,網(wǎng)頁將返回錯誤提示信息。②xxx’and‘1’=’1,后臺SQL語句變?yōu)?Select colummnnames from tablenames where id=xxx and ‘1’=’1’。由于‘1’=’1’永真,不對查詢產(chǎn)生影響,返回正常頁面。③xxx’and‘1’=’2’,后臺SQL語句變?yōu)?Select colummnnames from tablenames where id=xxx and‘1’=’2’。由于‘1’=’2’永假,查詢語句查詢不到任何信息,返回空白頁面或錯誤信息。若三種輸入都能獲得攻擊者預(yù)期的結(jié)果,則可以證明該網(wǎng)站缺乏嚴(yán)格的檢查和過濾,存在注入點。

(3)第三步:猜解用戶名和密碼。數(shù)據(jù)庫中存放的表名、字段名都是有規(guī)律可言的。通過構(gòu)建特殊數(shù)據(jù)庫語句在數(shù)據(jù)庫中依次查找表名、字段名、用戶名和密碼的長度,以及內(nèi)容。這個猜測過程可以通過網(wǎng)上大量注入工具快速實現(xiàn),并借助破解網(wǎng)站輕易破譯用戶密碼。

猜用戶名與密碼的內(nèi)容最常用也是最有效的方法有:①ASCII碼逐字解碼法:雖然這種方法速度較慢,但肯定是可行的。基本的思路是先猜出字段的長度,然后依次猜出每一位的值。猜用戶名與猜密碼的方法相同。②簡單法:猜用戶名用HTTP://www. websitename.com/news.asp?id=xx and (select top 1 flag from TestDB.dbo.admin where username>1) ,flag是admin表中的一個字段,username是用戶名字段,此時news.asp工作異常,但能得到Username的值。③猜用戶密碼:HTTP://www.websitename.com/news.asp?id=xx and (select top 1 flag from TestDB.dbo.admin where pwd>1) , flag是admin表中的一個字段,pwd是密碼字段,此時news.asp工作異常,但能得到pwd的值。同樣的方法,可以得到第二用戶名的密碼,第三個用戶的密碼等等,直到得到表中的所有用戶的密碼。

(4)第四步:尋找WEB管理后臺入口。通常WEB后臺管理的界面不面向普通用戶開放,要尋找到后臺的登陸路徑,可以利用掃描工具快速搜索到可能的登陸地址,依次進(jìn)行嘗試,就可以試出管理臺的入口地址。

(5)第五步:入侵和破壞。成功登陸后臺管理后,接下來就可以任意進(jìn)行破壞行為,如篡改網(wǎng)頁、上傳木馬、修改、泄漏用戶信息等,并進(jìn)一步通過網(wǎng)絡(luò)滲透等攻擊技術(shù),入侵?jǐn)?shù)據(jù)庫服務(wù)器獲取公司或者企業(yè)機(jī)密數(shù)據(jù)信息,造成重大經(jīng)濟(jì)損失。

三、SQL注入的檢測

SQL注入攻擊檢測分為入侵前的檢測和入侵后的檢測,入侵前的檢測,可以通過手工方式,也可以使用SQL注入工具軟件。檢測的目的是為預(yù)防SQL注入攻擊,而對于SQL注入攻擊后的檢測,主要是針對日志的檢測,SQL注入攻擊成功后,會在IIS日志和數(shù)據(jù)庫中留下“痕跡”。

數(shù)據(jù)庫檢查:使用HDSI、NBSI和Domain等SQL注入攻擊軟件工具進(jìn)行SQL注入攻擊后,都會在數(shù)據(jù)庫中生成一些臨時表。通過查看數(shù)據(jù)庫中最近新建的表的結(jié)構(gòu)和內(nèi)容,可以判斷是否曾經(jīng)發(fā)生過SQL注入攻擊。

IIS日志檢查:在Web服務(wù)器中如果啟用了日志記錄,則IIS日志會記錄訪問者的IP地址,訪問文件等信息,SQL注入攻擊往往會大量訪問某一個頁面文件(存在SQL注入點的動態(tài)網(wǎng)頁),日志文件會急劇增加,通過查看日志文件的大小以及日志文件中的內(nèi)容,也可以判斷是否發(fā)生過SQL注入攻擊。

其他相關(guān)信息判斷:SQL注入攻擊成功后,入侵者往往會添加用戶、開放3389遠(yuǎn)程終端服務(wù)以及安裝木馬后門等。可以通過查看系統(tǒng)管理員賬號、遠(yuǎn)程終端服務(wù)器開啟情況、系統(tǒng)最近日期產(chǎn)生的一些文件等信息來判斷是否發(fā)生過入侵。

四、SQL注入的防范

綜上所述,針對大多數(shù)的SQL注入攻擊利用了應(yīng)用程序沒有對客戶端輸入進(jìn)行嚴(yán)格的過濾和類型檢查的特點,可以制定相應(yīng)的輸入驗證機(jī)制,對客戶端輸入中的特殊字符、輸入類型以及輸入?yún)?shù)的長度進(jìn)行嚴(yán)格檢查和限制。

具體而言,可以從以下幾方面進(jìn)行防范。

①使用參數(shù)編碼機(jī)制封裝客戶端提交信息。利用客戶端輸入?yún)?shù)生成動態(tài)SQL語句時,注意參數(shù)的類型安全,明確指定輸入?yún)?shù)的確切類型,使用安全的參數(shù)編碼機(jī)制,用以保證輸入能夠正確地被編碼。

②檢查所有外部的輸入,替換或刪除敏感字符、字符串。對來自外部的輸入,在服務(wù)器正式處理之前對提交數(shù)據(jù)的合法性進(jìn)行檢查,進(jìn)行完備的檢查過濾。對包含SQL語句的保留字符(如:引號、分號、百分號等)的語句進(jìn)行限制,拒絕語句的執(zhí)行或使用轉(zhuǎn)義操作將這些符號轉(zhuǎn)換為非保留字符。

③以存儲過程、預(yù)編譯SQL或ADO命令對象的形式代替應(yīng)用程序中的動態(tài)SQL語句。在應(yīng)用程序調(diào)用存儲過程、預(yù)編譯SQL或ADO命令對象時,客戶端輸入數(shù)據(jù)的形式必須遵守被調(diào)用的這些對象在程序中的上下文的限制,變量不是可以執(zhí)行的腳本,因而大大增加了攻擊者注入SQL代碼的難度。

④加強(qiáng)SQL數(shù)據(jù)庫服務(wù)器的配置和連接,屏蔽出錯信息。1)加強(qiáng)SQL數(shù)據(jù)庫服務(wù)器的配置及WEB應(yīng)用程序的連接;2)避免將敏感的數(shù)據(jù)明文存放;3)以最小權(quán)限原則配置應(yīng)用程序連接數(shù)據(jù)庫的查詢操作權(quán)限;4)移除Web服務(wù)器上默認(rèn)的一些危險命令,例531902ae51282561aaa70fd7073b7566如ftp、cmd、wscript等,需要使用這些功能臨時復(fù)制到相應(yīng)目錄;5)以不泄漏有價值信息的出錯處理機(jī)制代替系統(tǒng)默認(rèn)的出錯提示。

⑤目錄最小化權(quán)限設(shè)置,給靜態(tài)網(wǎng)頁目錄和動態(tài)網(wǎng)頁目錄分別設(shè)置不同權(quán)限,盡量不給寫目錄權(quán)限。

小結(jié):SQL注入攻擊可以說是一種漏洞,程序中的變量處理不當(dāng),對用戶提交的數(shù)據(jù)過濾不足等,都可能造成這一漏洞。而如前文所述,SQL注入由于使用正常的WWW端口訪問,防火墻不能對其有效地進(jìn)行防范,相比于其他攻擊入侵手段,攻擊者能夠更容易地通過用戶提交的數(shù)據(jù),將惡意的SQL命令注入到后臺數(shù)據(jù)庫,獲得管理權(quán)限對目標(biāo)數(shù)據(jù)庫進(jìn)行非法操作,修改和竊取目標(biāo)數(shù)據(jù)庫中的數(shù)據(jù)。并且相對于其他攻擊手段,SQL注入攻擊無須復(fù)雜的編程,需要掌握的相關(guān)知識更少,入門更容易。因而在其攻擊方式被披露后,歷經(jīng)十余載,仍然是黑客入侵網(wǎng)站數(shù)據(jù)庫的熱門手段。

在實踐中,為防止SQL注入攻擊,需要完善網(wǎng)站的應(yīng)用代碼,同時結(jié)合強(qiáng)化數(shù)據(jù)庫服務(wù)器安全架構(gòu),監(jiān)視記錄數(shù)據(jù)庫整個運(yùn)行過程等多種方式,構(gòu)建一個強(qiáng)大的防御體系,防止可能的SQL注入漏洞被攻擊者利用。

總之,教師要讓學(xué)生了解SQL注入攻擊的基本原理和防范方法,加強(qiáng)互聯(lián)網(wǎng)攻擊防范技能培養(yǎng),讓職校生早日成為優(yōu)秀的計算機(jī)專業(yè)人才。

參考文獻(xiàn):

[1]諸葛建偉.網(wǎng)絡(luò)攻防技術(shù)與實踐[M].北京:電子工業(yè)出版社,

2011.

[2]何玉潔.數(shù)據(jù)庫原理與應(yīng)用[M].北京:機(jī)械工業(yè)出版社,2011.

主站蜘蛛池模板: 无码中文AⅤ在线观看| 91精品专区国产盗摄| 丝袜无码一区二区三区| 国产成年女人特黄特色大片免费| 国产成人综合亚洲网址| 午夜视频在线观看免费网站 | 2021亚洲精品不卡a| 97超碰精品成人国产| 免费日韩在线视频| 香蕉国产精品视频| 91在线一9|永久视频在线| 3D动漫精品啪啪一区二区下载| 精品国产成人av免费| 97综合久久| 999精品色在线观看| 91九色视频网| 精品国产自| 少妇高潮惨叫久久久久久| 国产永久无码观看在线| 毛片久久久| 久久男人资源站| AV不卡在线永久免费观看| 亚洲AV无码乱码在线观看裸奔| 播五月综合| 国产性生交xxxxx免费| 妇女自拍偷自拍亚洲精品| 免费一极毛片| 国产微拍精品| 强乱中文字幕在线播放不卡| 成年A级毛片| 国产成人91精品| 精品国产aⅴ一区二区三区| 欧美全免费aaaaaa特黄在线| 亚洲AⅤ永久无码精品毛片| 呦系列视频一区二区三区| 亚洲欧美一区在线| 国产精品手机视频| 国产人前露出系列视频| 国精品91人妻无码一区二区三区| 日本尹人综合香蕉在线观看 | 亚洲另类国产欧美一区二区| h网址在线观看| 国产国产人成免费视频77777| 91在线播放国产| 国产精品播放| 日韩中文精品亚洲第三区| 日韩欧美中文亚洲高清在线| 成人欧美在线观看| 成人亚洲天堂| 国产精品刺激对白在线| 国产9191精品免费观看| 一区二区三区在线不卡免费 | 国产毛片高清一级国语| 亚洲国产系列| 日韩欧美色综合| 激情乱人伦| 极品国产一区二区三区| 人妻丝袜无码视频| 久久亚洲AⅤ无码精品午夜麻豆| a毛片免费观看| 亚洲综合18p| 日韩黄色精品| 欧美日韩一区二区在线播放| 高清国产在线| 亚洲精品视频在线观看视频| 国产高潮视频在线观看| 国产精品性| 亚洲国产一成久久精品国产成人综合| 亚洲男人天堂2020| 毛片一级在线| 国产精品久久精品| 99视频在线观看免费| 国产欧美视频综合二区| 亚洲一级毛片| 欧美亚洲一区二区三区在线| 人妻精品全国免费视频| 91久久国产热精品免费| 97精品久久久大香线焦| 国产高潮流白浆视频| a级毛片免费播放| 色悠久久综合| 国产AV毛片|