国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

從軟件開發(fā)角度談SQL注入攻擊的防范

2012-04-29 03:10:09姜子罡張一光藺蜀梁成崗
科技創(chuàng)新導(dǎo)報(bào) 2012年12期
關(guān)鍵詞:明文漏洞應(yīng)用程序

姜子罡 張一光 藺蜀 梁成崗

SQL注入攻擊分析應(yīng)用程序的編碼,在發(fā)現(xiàn)數(shù)據(jù)庫的漏洞之后,通過提交SQL的查詢密碼給服務(wù)器,得到Web頁面返回的數(shù)據(jù),根據(jù)這得到的結(jié)果,從而利用漏洞獲得數(shù)據(jù)庫中的重要關(guān)鍵性的數(shù)據(jù)或者相應(yīng)的權(quán)限。而這種注入攻擊的手段通常都是從正常的端口進(jìn)入,所以防火墻通常不會對其做出有效的反映,只有在事后通過IIS管理日志的分析才能發(fā)現(xiàn)。當(dāng)下很多的中小型的網(wǎng)站主要就是利用托管的方式管理,因而采用分析日志的方式來對SQL注入攻擊進(jìn)行防范是不太現(xiàn)實(shí)的,如果一定要做出防范,需要在程序設(shè)計(jì)的過程中做出專門的處理。本文主要對SQL注入攻擊進(jìn)行相關(guān)的論述,除了介紹了一些特定的常見的步驟和手段之外,還主要從開發(fā)軟件的角度介紹了相應(yīng)的方法。

1 SQL注入攻擊的手段和步驟介紹

1.1 步驟簡介

通過上面的介紹我們對SQL注入攻擊有了一定的了解,無論在步驟還是手段的方面都有了一個粗略的認(rèn)識,下面我們來細(xì)致的講述下這種攻擊方式的步驟:

a.事先編輯好特殊的SQL語言,然后利用這種語句去尋找注入放面的漏洞;

b.利用發(fā)現(xiàn)的注入漏洞來嘗試著進(jìn)入數(shù)據(jù)庫,從而有效的獲取數(shù)據(jù)庫中的關(guān)鍵信息;

c.利用上面發(fā)現(xiàn)的數(shù)據(jù)庫中的關(guān)鍵信息,通過對其進(jìn)行仔細(xì)的分析,從而獲得管理員的相關(guān)權(quán)限為sa,為后續(xù)的攻擊做好準(zhǔn)備。實(shí)施直接控制;以SQL Server 2000為例,如果實(shí)施注入攻擊的數(shù)據(jù)庫是SQL Server 2000,且數(shù)據(jù)庫用戶為sa,則可以直接添加管理員賬號、開放3389遠(yuǎn)程終端服務(wù)、生成文件等命令。

d.間接進(jìn)行控制。間接控制主要是指通過SQL注入點(diǎn)不能執(zhí)行DOS等命令,只能進(jìn)行數(shù)據(jù)字段內(nèi)容的猜測。在Web應(yīng)用程序中,為了方便用戶的維護(hù),一般都提供了后臺管理功能,其后臺管理驗(yàn)證用戶和口令都會保存在數(shù)據(jù)庫中,通過猜測可以獲取這些內(nèi)容,如果獲取的是明文的口令,則可以通過后臺中的上傳等功能上傳網(wǎng)頁木馬實(shí)施控制,如果口令是明文的,則可以通過暴力破解其密碼。

1.2 SQL常用的攻擊手段介紹

SQL注入攻擊漏洞的手段的有很多,下面我們主要介紹幾種常見的:

a.可以在查詢網(wǎng)址的尾部加入“and 1=1”,“and 1=2”等,從而構(gòu)成查詢的語句,然后通過頁面最終返回的結(jié)果判斷是否存在SQL相關(guān)的注入漏洞;

b.通過在查詢請求URL尾部添加數(shù)據(jù)庫中內(nèi)置變量判斷的語句的方式,然后根據(jù)頁面返回的結(jié)果來得到關(guān)鍵的信息。例如:user就是Server內(nèi)置的變量,在URL的尾部加上and user>0,那么返回的頁面就可能返回正確的user名稱;

c.在存儲的其間通過調(diào)用系統(tǒng)命令的方式在查詢URL的尾部注入。例如:可以在URL的尾部添加:exec master..xp__cmd shell“net user name passwordadd”。這就相當(dāng)于是利用net的命令新建了一個密碼為password和用戶名為name的帳號。

2 從軟件開發(fā)的角度來介紹防范SQL注入攻擊的方法

在設(shè)計(jì)程序的過程中,需要嚴(yán)格對用戶輸入進(jìn)行合法性的檢查,采用存儲過程對輸入值進(jìn)行有效的處理,制定合理有效的錯誤返回策略,以及在數(shù)據(jù)庫設(shè)計(jì)時對命名的規(guī)范都可以有效的防范或者避免SQL注入攻擊Web應(yīng)用程序。

2.1 SQL注入攻擊一般的防范方法

(1)在服務(wù)端正式處理之前對提交數(shù)據(jù)的合法性進(jìn)行檢查;(2)封裝客戶端提交信息;(3)替換或刪除敏感字符/字符串;(4)屏蔽出錯信息。(5)不要用字串連接建立SQL查詢,而使用SQL變量,因?yàn)樽兞坎皇强梢詧?zhí)行的腳本;(6)目錄最小化權(quán)限設(shè)置,給靜態(tài)網(wǎng)頁目錄和動態(tài)網(wǎng)頁目錄分別設(shè)置不同權(quán)限,盡量不給寫目錄權(quán)限;(7)修改或者去掉Web服務(wù)器上默認(rèn)的一些危險命令,例如ftp、cmd、wscript等,需要時再復(fù)制到相應(yīng)目錄;(8)數(shù)據(jù)敏感信息非常規(guī)加密,通過在程序中對口令等敏感信息加密都是采用md5函數(shù)進(jìn)行加密,即密文=md5(明文),本文推薦在原來的加密的基礎(chǔ)上增加一些非常規(guī)的方式,即在md5加密的基礎(chǔ)上附帶一些值,如密文=md5(md5(明文)+123456)。

2.2 檢查用戶輸入的合法性

SQL注入攻擊的手段無非就是通過篡改用戶的關(guān)鍵信息,因而我們?nèi)绻苊饣蛘叻婪蹲⑷牍舻脑?就必須對特殊的字符,例如;單引號、分號、雙引號、逗號、連接號、冒號等等進(jìn)行有效的過濾或者轉(zhuǎn)換,與此同時需要對用戶輸入字符才長度進(jìn)行有效的限制。另外利用存儲過程的方式對輸入值進(jìn)行處理,通過存儲過程可以將查詢的URL輸入值進(jìn)行參數(shù)化,而數(shù)據(jù)庫的服務(wù)器可以有效的避免將參數(shù)的內(nèi)容作為SQL的指令進(jìn)行處理,只有在數(shù)據(jù)庫對SQL的指令完成編譯之后,才會套用參數(shù)進(jìn)行運(yùn)行,這樣可以有效的避免SQL注入攻擊的風(fēng)險。

2.3 制定合理有效的錯誤返回策略

由于SQL的錯誤反饋信息可以有效的透露數(shù)據(jù)庫設(shè)計(jì)的某些細(xì)節(jié),因而需要注意的就是當(dāng)應(yīng)用程序發(fā)生錯誤的時候,盡量不要將錯誤的信息全部反饋給用戶,通常情況下正確而有效的做法就是對發(fā)生錯誤的頁面進(jìn)行一定的包裝,根據(jù)用戶的權(quán)限來向用戶展示錯誤的信息,如果沒有管理員的權(quán)限,可以僅僅提示是SQL發(fā)生了錯誤的運(yùn)行。

2.4 在數(shù)據(jù)庫設(shè)計(jì)的過程中要注意規(guī)范化命名

軟件工程師或者數(shù)據(jù)庫的編譯者在對數(shù)據(jù)庫進(jìn)行設(shè)計(jì)時,應(yīng)該避免利用日常詞匯對數(shù)據(jù)庫的字段和表進(jìn)行任意的命名,例如:name,systeminfo,password,useld,account等等,SQL注入攻擊通常就會對這些關(guān)鍵的詞匯進(jìn)行尋找,通過發(fā)現(xiàn)其是否存在,然后發(fā)現(xiàn)尋找相應(yīng)的漏洞。因而在數(shù)據(jù)庫設(shè)計(jì)的時候一定要遵循相應(yīng)的設(shè)計(jì)原則,適當(dāng)?shù)脑黾幼侄魏捅淼那昂缶Y,使得命名更加的合理。

3 總論

由于Web的應(yīng)用程序開發(fā)的門檻比較低,所以有很多的初學(xué)者尚未對整體的知識進(jìn)行了解就盲目的開發(fā)程序,或者一部分的程序設(shè)計(jì)人員、軟件工程師即使擁有了很豐富的設(shè)計(jì)知識,但是頭腦中對網(wǎng)絡(luò)安全的概念和設(shè)計(jì)經(jīng)驗(yàn)的匱乏,使得他們開發(fā)設(shè)計(jì)出的軟件有很多的安全隱患,一旦受到SQL的注入攻擊就無力招架,甚至癱瘓,因而我們需要做的就是在日常的數(shù)據(jù)或者程序開發(fā)過程中主動進(jìn)行防范,這樣不僅可以提升自身的安全意識,也可以增強(qiáng)網(wǎng)站的安全系數(shù),保證網(wǎng)站安全而有效的運(yùn)行。

參考文獻(xiàn)

[1] 李元鵬.SQL注入攻擊掃描分析工具的實(shí)現(xiàn)與攻擊防范技術(shù)研究[D].北京交通大學(xué),2010.

[2] 李小花.基于程序分析的SQL注入防御系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].湖南大學(xué),2010.

猜你喜歡
明文漏洞應(yīng)用程序
漏洞
刪除Win10中自帶的應(yīng)用程序
奇怪的處罰
三明:“兩票制”堵住加價漏洞
漏洞在哪兒
兒童時代(2016年6期)2016-09-14 04:54:43
奇怪的處罰
四部委明文反對垃圾焚燒低價競爭
高鐵急救應(yīng)補(bǔ)齊三漏洞
關(guān)閉應(yīng)用程序更新提醒
電腦迷(2012年15期)2012-04-29 17:09:47
五常市| 都昌县| 六枝特区| 北碚区| 汤阴县| 曲阳县| 永宁县| 玉环县| 垫江县| 汪清县| 南阳市| 昌黎县| 杭州市| 绩溪县| 博白县| 宁南县| 博野县| 互助| 黎城县| 安徽省| 梅河口市| 无锡市| 临漳县| 平罗县| 内乡县| 梅州市| 武义县| 陵川县| 黎平县| 靖江市| 岳普湖县| 肇庆市| 大兴区| 安吉县| 邢台市| 岑溪市| 孟连| 孟津县| 武隆县| 惠东县| 新乡市|