国产一级一区二区_segui88久久综合9999_97久久夜色精品国产_欧美色网一区二区

掃一掃
關(guān)注微信公眾號(hào)

SQL注入攻擊的原理及其防范措施
2006-04-06   網(wǎng)絡(luò)

ASP編程門檻很低,新手很容易上路。在一段不長(zhǎng)的時(shí)間里,新手往往就已經(jīng)能夠編出看來(lái)比較完美的動(dòng)態(tài)網(wǎng)站,在功能上,老手能做到的,新手也能夠做到。那么新手與老手就沒區(qū)別了嗎?這里面區(qū)別可就大了,只不過(guò)外行人很難一眼就看出來(lái)罷了。在界面的友好性、運(yùn)行性能以及網(wǎng)站的安全性方面是新手與老手之間區(qū)別的三個(gè)集中點(diǎn)。而在安全性方面,新手最容易忽略的問(wèn)題就是SQL注入漏洞的問(wèn)題。用NBSI 2.0對(duì)網(wǎng)上的一些ASP網(wǎng)站稍加掃描,就能發(fā)現(xiàn)許多ASP網(wǎng)站存在SQL注入漏洞,教育網(wǎng)里高校內(nèi)部機(jī)構(gòu)的一些網(wǎng)站這種漏洞就更普遍了,可能這是因?yàn)檫@些網(wǎng)站大都是一些學(xué)生做的緣故吧,雖然個(gè)個(gè)都很聰明,可是畢竟沒有經(jīng)驗(yàn),而且處于學(xué)習(xí)中,難免漏洞多多了。本文主要講講SQL注入的防范措施,而要明白這些防范措施的用處,須先詳細(xì)講解利用SQL注入漏洞入侵的過(guò)程。新手們看明白啦。

  相當(dāng)大一部分程序員在編寫代碼的時(shí)候,沒有對(duì)用戶輸入數(shù)據(jù)的合法性進(jìn)行判斷,使應(yīng)用程序存在安全隱患。如這是一個(gè)正常的網(wǎng)址http://localhost/lawjia/show.asp?ID=444,將這個(gè)網(wǎng)址提交到服務(wù)器后,服務(wù)器將進(jìn)行類似Select * from 表名 where 字段="&ID的查詢(ID即客戶端提交的參數(shù),本例是即444),再將查詢結(jié)果返回給客戶端,如果這里客戶端故意提交這么一個(gè)網(wǎng)址:

  http://localhost/lawjia/show.asp?ID=444 and user>0,這時(shí),服務(wù)器運(yùn)行Select * from 表名 where 字段=444 and user>0這樣的查詢,當(dāng)然,這個(gè)語(yǔ)句是運(yùn)行不下去的,肯定出錯(cuò),錯(cuò)誤信息如下:

  ·錯(cuò)誤類型:

Microsoft OLE DB Provider for ODBC Drivers (0x80040E07)
[Microsoft][ODBC SQL Server Driver][SQL Server]將 nvarchar 值 'sonybb' 轉(zhuǎn)換為數(shù)據(jù)類型為 int 的列時(shí)發(fā)生語(yǔ)法錯(cuò)誤。
/lawjia/show.asp, 第 47 行

  但是別有用心的人從這個(gè)出錯(cuò)信息中,可以獲得以下信息:該站使用MS_SQL數(shù)據(jù)庫(kù),用ODBC連接,連接帳號(hào)名為:sonybb。所謂SQL注入(SQL Injection),就是利用程序員對(duì)用戶輸入數(shù)據(jù)的合法性檢測(cè)不嚴(yán)或不檢測(cè)的特點(diǎn),故意從客戶端提交特殊的代碼,從而收集程序及服務(wù)器的信息,從而獲取想得到的資料。通常別有用心者的目標(biāo)是獲取網(wǎng)站管理員的帳號(hào)和密碼。比如當(dāng)某個(gè)人知道網(wǎng)站管理員帳號(hào)存在表login中,管理員帳號(hào)名為admin,他想知道管理員密碼,這里他從客戶端接著提交這樣一個(gè)網(wǎng)址:
http://localhost/lawjia/show.asp?ID=444 and (Select password from login where user_name='admin')>0,返回的出錯(cuò)信息如下:

  ·錯(cuò)誤類型:

Microsoft OLE DB Provider for ODBC Drivers (0x80040E07)
[Microsoft][ODBC SQL Server Driver][SQL Server]將 varchar 值 '!@#*&admin' 轉(zhuǎn)換為數(shù)據(jù)類型為 int 的列時(shí)發(fā)生語(yǔ)法錯(cuò)誤。
/lawjia/show.asp, 第 47 行

  你知道嗎?上面標(biāo)紅的部分就是管理員帳號(hào)admin的密碼!雖然很復(fù)雜,讓人看幾遍也記不住的,但它就這樣顯示在你面前了,這時(shí)您就可以用這個(gè)帳號(hào)和密碼接管人家的網(wǎng)站了!這時(shí)你可能還會(huì)說(shuō),如果他不是事先知道管理員帳號(hào)存在表login中,而且知道管理員帳號(hào)為admin,那他就不可能獲得管理員密碼。你錯(cuò)了,只要人家愿意多花時(shí)間嘗試,他將可以獲得數(shù)據(jù)庫(kù)連接帳號(hào)權(quán)限內(nèi)所能獲得的所有信息!具體過(guò)程請(qǐng)參看網(wǎng)上的這篇文章:SQL注入漏洞全接觸。

  當(dāng)然這個(gè)過(guò)程是很煩瑣的而且要花費(fèi)很多的時(shí)間,如果只能以這種手動(dòng)方式進(jìn)行SQL注入入侵的話,那么許多存在SQL注入漏洞的ASP網(wǎng)站會(huì)安全很多了,不是漏洞不存在了,而是利用這個(gè)漏洞入侵的成本太高了。但是如果利用專門的黑客工具來(lái)入侵的話,那情況就大大不同了。手動(dòng)方式進(jìn)行SQL注入入侵至少需要半天或一天乃至很多天的時(shí)間,而利用專門的工具來(lái)入侵就只需要幾分鐘時(shí)間了(視網(wǎng)速快慢決定),再利用獲得的管理帳號(hào)和密碼,上傳一個(gè)從網(wǎng)上下載的ASP后門程序,就輕易獲得整個(gè)網(wǎng)站的管理權(quán)限了,甚至整個(gè)服務(wù)器的管理權(quán)限。最有名的一種SQL注入入侵工具是NBSI 2.0,現(xiàn)在已經(jīng)出到2.0版本了,不過(guò),人家正式名稱不叫SQL注入入侵工具,而叫做網(wǎng)站安全漏洞檢測(cè)工具。有了這個(gè)所謂的檢測(cè)工具,使得入侵存在SQL注入漏洞的ASP網(wǎng)站成了小兒科的游戲,那些既不懂ASP又不懂SQL、年紀(jì)小小的男性青年常常得以在一天之內(nèi)入侵十多個(gè)ASP網(wǎng)站,他們以此獲得內(nèi)心的極大滿足。他們似乎也非常講究職業(yè)道德,往往并不破壞網(wǎng)站數(shù)據(jù)和系統(tǒng),常見的破壞方式大都僅僅是改換掉網(wǎng)站的主頁(yè),留下"善意的警告",如:你的網(wǎng)站存在SQL注入漏洞,請(qǐng)管理員做好防范措施!并聲明"我沒有破壞數(shù)據(jù)和系統(tǒng)",有的還要借機(jī)發(fā)布一下他的倡導(dǎo):"國(guó)內(nèi)網(wǎng)站大家不要入侵,有本事入侵小日本的!",最后,簽上他的鼎鼎大名是必不可少的程序。

  如此大的成就多數(shù)情況下僅需動(dòng)動(dòng)鼠標(biāo)就做到了。打開最新版的NBSI 2.0,如圖1所示:輸入地址到A區(qū),注意網(wǎng)址必須是帶傳遞參數(shù)的那種,點(diǎn)擊右邊的檢測(cè)按鈕,即出來(lái)B區(qū)信息,顯示當(dāng)前用戶為sonybb的權(quán)限為PUBLIC,當(dāng)前庫(kù)為lawjia。有點(diǎn)可惜啊,如果是SA權(quán)限的話,就可以跨庫(kù)注入了。不過(guò),這個(gè)權(quán)限也足夠獲取該網(wǎng)站管理員帳號(hào)和密碼了。點(diǎn)C區(qū)下的自動(dòng)猜解按鈕,即出來(lái)當(dāng)前庫(kù)lawjia中的各種表,哇,login表中一定是存管理員帳號(hào)和密碼的吧?選中它吧,接著點(diǎn)擊D區(qū)下的自動(dòng)猜解按鈕,立即出來(lái)login表里的列名稱,果然是存放用戶名和密碼的啊,太棒了!趕快打上勾,迫不急待的點(diǎn)擊E區(qū)下的自動(dòng)猜解按鈕。激動(dòng)人心的時(shí)刻就要到來(lái)啦,只見唰唰地幾下,帳號(hào)與密碼全部出來(lái)了。剩下的事就是辨別哪一個(gè)帳號(hào)是管理員了。


圖1(圖中的示例網(wǎng)站在作者本地電腦上運(yùn)行)

  不知那些沒注意過(guò)SQL注入漏洞的ASP程序員們看了上圖的例子,要作何感想呢?是不是覺得這個(gè)所謂的網(wǎng)站安全漏洞檢測(cè)工具SBSI 2.0簡(jiǎn)直就是MS_SQL的企業(yè)管理器呢?只不過(guò)人家不需要帳號(hào)和密碼就可以查看您數(shù)據(jù)庫(kù)里的所有信息了。如果您的網(wǎng)站就這樣被人不費(fèi)吹灰之力入侵了,您是不是要吐幾升血了呢?也許您已經(jīng)為系統(tǒng)安全費(fèi)盡心思了,裝補(bǔ)丁、安防火墻、裝殺毒軟件、巧妙配置IIS及數(shù)據(jù)庫(kù)用戶權(quán)限,但您就是沒有注意到SQL注入漏洞,于是"千里之堤,潰于蟻穴"。防火墻與殺毒軟件對(duì)SQL注入是沒辦法防范的,因?yàn)镾QL注入入侵跟普通的WEB頁(yè)面訪問(wèn)沒什么區(qū)別,所以往往是防不甚防。而且一個(gè)服務(wù)器上放置的網(wǎng)站往往是有很多個(gè)的,服務(wù)器管理員不可能挨個(gè)網(wǎng)站挨個(gè)頁(yè)面的審查其是否存在SQL注入漏洞。那么應(yīng)該如何防范SQL注入入侵呢?作為服務(wù)器管理員或網(wǎng)站程序員應(yīng)該分別怎么做呢?服務(wù)器管理員要做的事主要是配置IIS和數(shù)據(jù)庫(kù)用戶權(quán)限,而網(wǎng)站程序員主要是要在程序代碼編寫上防范SQL注入入侵。下面詳細(xì)敘述:

  對(duì)了服務(wù)器管理員,既然你不可能挨個(gè)檢查每個(gè)網(wǎng)站是否存在SQL注入漏洞,那么就來(lái)個(gè)一個(gè)絕招。這個(gè)絕招能有效防止SQL注入入侵而且"省心又省力,效果真好!"SQL注入入侵是根據(jù)IIS給出的ASP錯(cuò)誤提示信息來(lái)入侵的,如果你把IIS設(shè)置成不管出什么樣的ASP錯(cuò)誤,只給出一種錯(cuò)誤提示信息,即http 500錯(cuò)誤,那么人家就沒辦法入侵了。具體設(shè)置請(qǐng)參看圖2。主要把500:100這個(gè)錯(cuò)誤的默認(rèn)提示頁(yè)面 C:WINDOWSHelpiisHelpcommon500-100.asp改成
C:WINDOWSHelpiisHelpcommon500.htm即可,這時(shí),無(wú)論ASP運(yùn)行中出什么錯(cuò),服務(wù)器都只提示HTTP 500錯(cuò)誤。


圖2、IIS出錯(cuò)信息設(shè)置

  但是這樣設(shè)置一個(gè)不好的地方是程序員編寫的代碼出錯(cuò)時(shí),服務(wù)器不給出詳細(xì)的錯(cuò)誤提示信息,會(huì)給程序員帶來(lái)很大的不便。不過(guò),服務(wù)器畢竟不是測(cè)試代碼的地方,應(yīng)堅(jiān)持安全穩(wěn)定第一,這樣設(shè)置也是無(wú)可厚非的,事實(shí)上許多服務(wù)器的出錯(cuò)信息都是如此設(shè)置。

  服務(wù)器管理員還應(yīng)在IIS中為每個(gè)網(wǎng)站設(shè)置好執(zhí)行權(quán)限,可千萬(wàn)別給人家靜態(tài)網(wǎng)站以"腳本和可執(zhí)行"權(quán)限。一般情況下給個(gè)"純腳本"權(quán)限就夠了,對(duì)于那些通過(guò)網(wǎng)站后臺(tái)管理中心上傳的文件存放的目錄,就更吝嗇一點(diǎn)吧,執(zhí)行權(quán)限設(shè)為"無(wú)"好了,這樣做是為了防止人家上傳ASP木馬,執(zhí)行權(quán)限設(shè)為"無(wú)",人家上傳ASP木馬也運(yùn)行不了。一般情況下,SQL注入漏洞僅是涉及一個(gè)網(wǎng)站安全的事,如果人家通過(guò)這個(gè)漏洞上傳了ASP木馬并運(yùn)行起來(lái),那整個(gè)服務(wù)器都失陷了。所以有遠(yuǎn)見的、有責(zé)任心的服務(wù)器管理員應(yīng)該十分吝嗇的配置IIS的執(zhí)行權(quán)限。

  同樣的吝嗇態(tài)度應(yīng)適用于數(shù)據(jù)庫(kù)用戶的權(quán)限配置上,當(dāng)然這里數(shù)據(jù)庫(kù)是指MS_SQL啦,ACCESS都沒有用戶權(quán)限配置這一步驟。如果PUBLIC權(quán)限足夠使用的絕不給再高的權(quán)限,可千萬(wàn)別把SA級(jí)別的權(quán)限隨隨便便地給人家啊。那個(gè)所謂的網(wǎng)站安全漏洞檢測(cè)工具NBSI 2.0可有跨庫(kù)進(jìn)行SQL注入的功能啊,如果你把SA權(quán)限給了存在SQL注入漏洞的庫(kù),那其它庫(kù)就不保啦!城門失火,殃及池魚呀。而人家還可以通過(guò)調(diào)用xp_cmdshell命令得到系統(tǒng)的最高權(quán)限。具體步驟還是請(qǐng)參看上面提到的那篇《SQL注入漏洞全接觸》這篇文章吧。

  接下來(lái)要講講程序員的防范措施了。程序主要要做兩件事,最重要的一件事,當(dāng)然是對(duì)客戶端提交的變量參數(shù)進(jìn)行仔細(xì)地檢測(cè)啦。對(duì)客戶端提交的變量進(jìn)行檢查以防止SQL注入,有各種方法,到http://community.csdn.net/上搜索一下,你能獲得許多有益信息。這里介紹一種現(xiàn)成的方法,別人已經(jīng)寫好了檢測(cè)代碼,拿來(lái)用一下,不用自己辛苦啦。那就是"楓葉SQL通用防注入V1.0 ASP版",這是一段對(duì)用戶通過(guò)網(wǎng)址提交過(guò)來(lái)的變量參數(shù)進(jìn)行檢查的代碼,發(fā)現(xiàn)客戶端提交的參數(shù)中有"exec、insert、select、delete、from、update、count、user、xp_cmdshell、add、net、Asc"等用于SQL注入的常用字符時(shí),立即停止執(zhí)行ASP并給出警告信息或轉(zhuǎn)向出錯(cuò)頁(yè)面。大家可以到網(wǎng)上搜索一下,下載這段代碼,存為一個(gè)ASP頁(yè)面,如checkSQL.asp,把這個(gè)頁(yè)面include到每個(gè)需要帶參數(shù)查詢SQL數(shù)據(jù)庫(kù)ASP頁(yè)面中,記住,只要加一行這樣的<!--#include file="checkSQL.asp"-->代碼就行了。

  程序員要做的第二件事是給用戶密碼加密啦。比如用MD5加密。MD5是沒有反向算法,不能解密的。人家即使知道經(jīng)加密后存在數(shù)據(jù)庫(kù)里的像亂碼一樣的密碼,他也沒辦法知道原始密碼了。不過(guò),人家可以用UPDATE方法用他的密碼代替你的密碼,但這個(gè)操作還是有點(diǎn)麻煩,人家可能會(huì)怕麻煩而放棄。而那個(gè)所謂的網(wǎng)站安全漏洞檢測(cè)工具NBSI 2.0是沒有提供UPDATE操作功能的,所以用MD5加密后,人家僅用NBSI 2.0而不輔以手動(dòng)操作的話,就不可能獲得網(wǎng)站管理員帳號(hào)的密碼,這將擋住許多菜鳥級(jí)的攻擊者,至少那些既不懂ASP又不懂SQL、年紀(jì)小小的男性青年是沒有辦法啦!

  文章寫到這,已經(jīng)夠長(zhǎng)了,本來(lái)還想對(duì)那些所謂的網(wǎng)站安全漏洞檢測(cè)工具如NBSI之流的黑客工具進(jìn)行一番理性的探討的,看來(lái)還是放棄好了。為了增強(qiáng)網(wǎng)站安全,了解攻擊手段是必須的,但是,利用漏洞開發(fā)專門的黑客工具,使那些其實(shí)并不具備必要的網(wǎng)絡(luò)技術(shù)和網(wǎng)絡(luò)安全知識(shí)的人(就是文中提到的"既不懂ASP又不懂SQL、年紀(jì)小小的男性青年")輕而易舉地侵入一家網(wǎng)站,這除了為許多網(wǎng)絡(luò)管理員制造麻煩外,是否還具有加強(qiáng)網(wǎng)絡(luò)安全意識(shí)提高網(wǎng)絡(luò)安全水平的功效呢?

熱詞搜索:

上一篇:全圖教你搞定RJ45接頭網(wǎng)線
下一篇:同時(shí)安裝sql2000和sql2005

分享到: 收藏
国产一级一区二区_segui88久久综合9999_97久久夜色精品国产_欧美色网一区二区
国内久久婷婷综合| 欧美一区二视频| 亚洲精品乱码久久久久久日本蜜臀| 韩国在线一区| 国产精品视频久久一区| 亚洲视频精选| 欧美超级免费视 在线| 国产午夜精品一区二区三区视频| 国产一区二区中文| 欧美一乱一性一交一视频| 国产精品老女人精品视频| 99精品欧美一区二区三区综合在线| 欧美激情一区二区在线 | 一本一本久久a久久精品综合妖精 一本一本久久a久久精品综合麻豆 | 国产精品日韩欧美一区| 在线欧美日韩精品| 欧美日韩国产123区| 亚洲风情亚aⅴ在线发布| 久久综合伊人| 亚洲人在线视频| 国产精品一区二区女厕厕| 午夜欧美不卡精品aaaaa| 欧美亚一区二区| 久久国产精彩视频| 在线播放国产一区中文字幕剧情欧美 | 久久精品国产精品亚洲综合| 亚洲大片在线| 欧美日韩一区在线播放| 亚洲欧美综合| 久久国产精品久久久久久| 亚洲国产二区| 欧美日韩国产片| 亚洲欧美日产图| 欧美午夜片欧美片在线观看| 亚洲欧美在线高清| 国产一区二区激情| 欧美国产日韩精品| 欧美在线啊v| 亚洲黄色成人久久久| 欧美裸体一区二区三区| 亚洲欧美激情视频在线观看一区二区三区| 狠狠入ady亚洲精品| 欧美精品一区在线| 亚洲欧美成人一区二区三区| 国产欧美视频一区二区| 欧美日韩高清区| 久久gogo国模裸体人体| 亚洲精品欧美日韩| 亚洲国产精品久久久久婷婷老年| 欧美在线视频一区| 国产精品video| 久久亚洲精选| 亚洲综合日韩在线| 亚洲精品小视频在线观看| 国产欧美午夜| 国产精品嫩草99av在线| 久久午夜激情| 亚洲图片激情小说| 亚洲精华国产欧美| 一区在线视频| 久久综合狠狠| 欧美在线看片a免费观看| 亚洲精品一级| 亚洲午夜激情免费视频| 99人久久精品视频最新地址| 伊人成人在线视频| 激情久久五月天| 国产日韩欧美在线看| 欧美日韩一二区| 欧美日韩精品一区二区天天拍小说 | 亚洲一级特黄| 亚洲国产一区二区精品专区| 在线看国产一区| 国产一区二区av| 国产精品久久久久一区| 欧美成人激情在线| 欧美精品久久99久久在免费线| 久久精品亚洲精品| 狠狠爱www人成狠狠爱综合网| 欧美日韩亚洲国产一区| 欧美日本国产在线| 欧美xxx在线观看| 免费观看在线综合色| 亚洲精品小视频| 亚洲精品日韩在线观看| 91久久精品美女高潮| 亚洲第一狼人社区| 日韩视频永久免费观看| 亚洲精品一区二区三区蜜桃久| 在线成人性视频| 亚洲丁香婷深爱综合| 亚洲视频电影图片偷拍一区| 亚洲调教视频在线观看| 亚洲一区精彩视频| 亚洲视频导航| 久久深夜福利免费观看| 免费日韩av电影| 欧美欧美全黄| 好吊妞**欧美| 亚洲国产精品一区| 日韩亚洲成人av在线| 亚洲视频在线观看| 亚洲欧美国产精品桃花| 欧美一区中文字幕| 久久一二三四| 午夜精品一区二区三区四区| 久久久久久午夜| 欧美高清视频一区二区三区在线观看| 久久综合狠狠综合久久综青草| 欧美电影免费观看大全| 欧美午夜精品久久久久久久| 欧美性淫爽ww久久久久无| 国产美女高潮久久白浆| 国产乱人伦精品一区二区 | 欧美精品videossex性护士| 免费一级欧美在线大片| 欧美日韩精品在线观看| 欧美另类视频| 亚洲视频在线一区| 久久riav二区三区| 欧美成在线视频| 国产精品网红福利| 在线观看欧美亚洲| 亚洲午夜精品视频| 欧美亚洲一区二区三区| 欧美大片一区二区三区| 欧美日韩国产综合久久| 亚洲无毛电影| 欧美午夜在线观看| 国产麻豆精品在线观看| 在线观看日韩| 亚洲欧美日韩久久精品| 亚洲女性裸体视频| 久久av一区| 欧美婷婷六月丁香综合色| 精品盗摄一区二区三区| 亚洲欧美日韩成人| 亚洲高清资源综合久久精品| 亚洲性线免费观看视频成熟| 久久综合给合久久狠狠色 | 国内外成人免费激情在线视频网站| 亚洲国产国产亚洲一二三| 亚洲黄色在线视频| 久久久久在线观看| 国产精品一区毛片| 制服丝袜亚洲播放| 欧美激情在线播放| 黄网站色欧美视频| 久久成人综合网| 国产精品亚洲成人| 校园春色国产精品| 国产精品久久久久久久午夜片| 亚洲国产精品久久久久婷婷老年| 先锋影音久久| 国产伦精品一区二区三区视频黑人 | 最新日韩在线| 久久全球大尺度高清视频| 国产伦精品一区二区三区免费 | 国产亚洲精品久久久久久| 欧美一区二区在线看| 亚洲愉拍自拍另类高清精品| 亚洲影院在线观看| 欧美一区激情视频在线观看| 久久久免费观看视频| 国模吧视频一区| 日韩亚洲欧美成人一区| 亚洲精品乱码久久久久久蜜桃麻豆| 99re6这里只有精品视频在线观看| 国产一区二区三区在线观看网站| 韩国三级电影久久久久久| 亚洲精品国产拍免费91在线| 日韩午夜在线视频| 久久成人免费视频| 欧美午夜精彩| 亚洲高清视频在线| 欧美在线亚洲综合一区| 欧美人成在线| 亚洲福利久久| 亚洲中字黄色| 欧美日韩国产成人精品| 国产综合一区二区| 午夜精品在线看| 欧美高清日韩| 国内精品美女在线观看| 久久久综合激的五月天| 国产精品第三页| 国产一区二区高清不卡| 久久精品一二三区| 国产综合在线视频| 亚洲欧美日本视频在线观看| 一区在线观看视频| 欧美亚洲视频一区二区| 亚洲香蕉在线观看| 欧美在线啊v| 国产亚洲精品bt天堂精选| 亚洲午夜影视影院在线观看| 国产精品久久久久一区二区三区| 欧美黄色aa电影| 欧美日韩国产专区| 亚洲国产日韩欧美|