亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

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

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

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

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

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

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

        一、SQL注入攻擊原理

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

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

        SQL注入攻擊主要是通過構建特殊的輸入,將SQL語法中的某些組合作為參數傳入Web應用程序,通過執(zhí)行SQL語句而執(zhí)行入侵者想要的操作。以登錄網站為例,假定網站將注冊用戶的編號、用戶名及其對應的密碼分別存放于名為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”后,提交到后臺數據庫的查詢語句為:SELECT * FROM login WHERE uname=’guest’AND psw=’123456’.當表login存在guest 用戶且其密碼為123456,則輸出登錄成功的信息,反之輸出錯誤提示。然而,如果攻擊者用字符串“guest’ OR ‘1’=’1”代替原有的用戶名和密碼輸入,則后臺數據庫組裝的SQL語句將會變?yōu)椋篠ELECT * FROM login WHERE uname=’guest’OR‘1’=’1’AND psw=’guest’OR‘1’=’1’. 顯然WHERE子句由于表達式‘1’=’1’是永真式而失去了作用,不能起到判別用戶是否合法的效果,所以攻擊者即使不知道用戶名和密碼,也可以成功登錄網站。

        二、SQL注入攻擊過程

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

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

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

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

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

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

        猜用戶名與密碼的內容最常用也是最有效的方法有:①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后臺管理的界面不面向普通用戶開放,要尋找到后臺的登陸路徑,可以利用掃描工具快速搜索到可能的登陸地址,依次進行嘗試,就可以試出管理臺的入口地址。

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

        三、SQL注入的檢測

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

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

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

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

        四、SQL注入的防范

        綜上所述,針對大多數的SQL注入攻擊利用了應用程序沒有對客戶端輸入進行嚴格的過濾和類型檢查的特點,可以制定相應的輸入驗證機制,對客戶端輸入中的特殊字符、輸入類型以及輸入參數的長度進行嚴格檢查和限制。

        具體而言,可以從以下幾方面進行防范。

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

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

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

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

        ⑤目錄最小化權限設置,給靜態(tài)網頁目錄和動態(tài)網頁目錄分別設置不同權限,盡量不給寫目錄權限。

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

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

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

        參考文獻:

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

        2011.

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

        伊人久久中文大香线蕉综合| 最新国产精品精品视频| 免费人妻精品区一区二区三 | 国产亚洲亚洲精品视频| 国产三级精品和三级男人| 久久精品国产99国产精偷| 欧美人与动人物牲交免费观看| 久久中国国产Av秘 入口| 亚洲一区亚洲二区中文字幕| 国产情侣一区二区| 黑人巨大av在线播放无码| 97日日碰日日摸日日澡| 久久中文字幕国产精品| 亚洲综合色无码| 99久久精品国产成人综合| 亚洲最稳定资源在线观看| 国产人妖视频一区二区| 亚洲av日韩av天堂久久| 欧美另类视频在线| 亚洲中文字幕熟女五十| 精品久久av一区二区| 久久人与动人物a级毛片| 亚洲男人堂色偷偷一区| 国产亚洲精品一区二区在线观看 | 天天鲁一鲁摸一摸爽一爽| 欧美精品一区二区精品久久| 在线观看二区视频网站二区 | 亚洲av无码精品色午夜在线观看| 精品亚洲午夜久久久久| 在线视频自拍视频激情| 97精品人人妻人人| 乱子真实露脸刺激对白| 国产肥熟女视频一区二区三区| 国产精品一区二区三久久不卡| 少妇装睡让我滑了进去| 日韩美无码一区二区三区| 男女激情视频网站在线| 免费国产黄网站在线观看可以下载| 国产精品乱一区二区三区| 亚洲福利视频一区二区三区| 久久精品国产亚洲av久|