摘 要:使用.NET開發(fā)信息系統(tǒng)是近年來高校廣泛采用的一種形式,因此針對(duì)它的攻擊也日益增多,其中最為嚴(yán)重的SQL注入攻擊,可以徹底摧毀數(shù)據(jù)庫,并給攻擊者打開登錄系統(tǒng)的后門。本文以上海理工大學(xué)研究生信息系統(tǒng)和Web網(wǎng)站為研究樣本,分析了流行的注入攻擊代碼,給出了修復(fù)此攻擊的方法,并設(shè)計(jì)了一套行之有效的SQL注入防御系統(tǒng),此方法在實(shí)際應(yīng)用中得到了證明。
關(guān)鍵詞: .NET;SQL注入;存儲(chǔ)過程;信息系統(tǒng)
中圖分類號(hào):TP309.2文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1673-8454(2010)13-0011-03
一、前言
隨著網(wǎng)絡(luò)基礎(chǔ)建設(shè)日趨成熟,信息系統(tǒng)的應(yīng)用也越來越廣泛,而同時(shí)產(chǎn)生的問題就是網(wǎng)絡(luò)攻擊的不斷出現(xiàn)。在眾多的攻擊手段中,SQL 注入式攻擊是較易掌握并容易獲得成功的一種攻擊方式,特別是一些自動(dòng)化的SQL注入工具的出現(xiàn),如NBSI2、DOMAIN3等,更是使得許多動(dòng)態(tài)站點(diǎn)成為SQL攻擊下的犧牲品。而造成這種情況的一個(gè)主要原因就是程序員在編寫程序時(shí)沒有對(duì)用戶提交數(shù)據(jù)的合法性進(jìn)行驗(yàn)證,從而使得程序存在隱患。SQL注入是從正常的WWW端口訪問,表面看起來跟一般的Web頁面訪問沒什么區(qū)別,這類攻擊屬于應(yīng)用層攻擊,所以以往的基于包過濾法、基于狀態(tài)檢測(cè)法等完全無效。要解決 SQL注入攻擊問題,就必須在應(yīng)用層進(jìn)行充分的防范來確保系統(tǒng)的安全。上海理工大學(xué)研究生部的多個(gè)應(yīng)用系統(tǒng)都采用了.NET+SQL作為開發(fā)環(huán)境,本文就是以此為平臺(tái)進(jìn)行研究。
二、SQL注入攻擊代碼分析
SQL 注入攻擊的具體過程為:發(fā)現(xiàn)SQL 注入位置;判斷后臺(tái)數(shù)據(jù)庫類型;確定XP_CMDSHELL 可執(zhí)行情況;發(fā)現(xiàn)Web虛擬目錄;上傳ASPX 木馬;得到管理員權(quán)限。……