?
快捷搜索:  as  test  1111  test aNd 8=8  test++aNd+8=8  as++aNd+8=8  as aNd 8=8

和記娛樂博娛188下載:SQL注入攻擊的原理及其防范措施

?

ASP編程門檻很低,新手很輕易上路。在一段不長的光陰里,新手每每就已經能夠編出看來對照完美的動態網站,在功能上,熟手在行能做到的,新手也能夠做到。那么新手與熟手在行就沒差別了嗎?這里面差別可就大年夜了,只不過外行人很難一眼就看出來罷了。在界面的友好性、運行機能以及網站的安然性方面是新手與熟手在行之間區其余三個集中點。而在安然性方面,新手最輕易輕忽的問題便是SQL注入破綻的問題。用NBSI 2.和記娛樂博娛188下載0對網上的一些ASP網站稍加掃描,就能發明許多ASP網站存在SQL注入破綻,教導網里高校內部機構的一些網站這種破綻就更普遍了,可能這是由于這些網站大年夜都是一些門生做的緣故吧,雖然個個都很智慧,可是終究沒有履歷,而且處于進修中,難免破綻多多了。本文主要講講SQL注入的警備步伐,而要明白這些警備步伐的用場,須先具體解說使用SQL注入破綻入侵的歷程。新手們看明白啦。

相昔時夜一部分法度榜樣員在編寫代碼的時刻,沒有對用戶輸入數據的合法性進行判斷,使利用法度榜樣存在安然隱患。如這是一個正常的網址http://localhost/lawjia/show.asp?ID=444,將這個網址提交到辦事器后,辦事器將進行類似Select * from 表名 where 字段="&ID的查詢(ID即客戶端提交的參數,本例是即444),再將查詢結果返回給客戶端,假如這里客戶端有意提交這么一個網址:

http://localhost/lawjia/sh和記娛樂博娛188下載ow.asp?ID=444 and user>0,這時,辦事器運行Select * from 表名 where 字段=444 and user>0這樣的查詢,當然,這個語句是運行不下去的,肯定掉足,差錯信息如下:

差錯類型:

Microsoft OLE DB Provider for ODBC Drivers (0x80040E07)

[Microsoft][ODBC SQL Server Driver][SQL Server]將 nvarchar 值 'sonybb' 轉換為數據類型為 int 的列時發生語法差錯。

/lawjia/show.asp, 第 47 行

然則醉翁之意的人從這個掉足信息中,可以得到以下信息:該站應用MS_SQL數據庫,用ODBC連接,連接帳號名為:sonybb。所謂SQL注入(SQL Injection),便是使用法度榜樣員對用戶輸入數據的合法性檢測不嚴或不檢測的特征,有意從客戶端提交特殊的代碼,從而網絡法度榜樣及辦事器的信息,從而獲取想獲得的資料。平日醉翁之意者的目標是獲取網站治理員的帳號和密碼。比如當某小我知道網站治理員帳號存在表login中,治理員帳號名為admin,他想知道治理員密碼,這里他從客戶端接著提交這樣一個網址:

http://localhost/lawjia/show.asp?ID=444 and (Select password from login where user_name='admin')>0,返回的掉足信息如下:

差錯類型:

Microsoft OLE DB Provider for ODBC Drivers (0x80040E07)

[Microsoft][ODBC SQL Server Driver][SQL Server]將 varchar 值 '?。溃#dmin' 轉換為數據類型為 int 的列時發生語法差錯。

/lawjia/show.asp, 第 47 行

你知道嗎?上面標紅的部分便是治理員帳號admin的密碼!雖然很繁雜,讓人看幾遍也記不住的,但它就這樣顯示在你眼前了,這時您就可以用這個帳號和密碼接收人家的網站了!這時你可能還會說,假如他不是事先知道治理員帳號存在表login中,而且知道治理員帳號為admin,那他就弗成能得到治理員密碼。你錯了,只要人家樂意多花光陰考試測驗,他將可以得到數據庫連接帳號權限內所能得到的所有信息!詳細歷程請參看網上的這篇文章:SQL注入破綻全打仗。

當然這個歷程是很啰嗦的而且要花費很多的光陰,假如只能以這種手動要領進行SQL注入入侵的話,那么許多存在SQL注入破綻的ASP網站會安然很多了,不是破綻不存在了,而是使用這個破綻入侵的資源太高了。然則假如使用專門的黑客對象來入侵的話,那環境就大年夜大年夜不合了。手動要領進行SQL注入入侵至少必要半天或一天甚至很多天的光陰,而使用專門的對象來入侵就只必要幾分鐘光陰了(視網速快慢抉擇),再使用得到的治理帳號和密碼,上傳一個從網高低載的ASP后門法度榜樣,就隨意馬虎得到全部網站的治理權限了,以致全部辦事器的治理權限。最著名的一種SQL注入入侵對象是NBSI 2.0,現在已經出到2.0版本了,不過,人家正式名稱不叫SQL注入入侵對象,而叫做網站安然破綻檢測對象。有了這個所謂的檢測對象,使得入侵存在SQL注入破綻的ASP網站成了小兒科的游戲,那些既不懂ASP又不懂SQL、年紀小小的男性青年經常得以在一天之內入侵十多個ASP網站,他們以此得到心坎的極大年夜滿意。他們彷佛也異??季柯殬I道德,每每并不破壞網站數據和系統,常見的破壞要領大年夜都僅僅是改換掉落網站的主頁,留下"善意的警告",如:你的網站存在SQL注入破綻,請治理員做好警備步伐!并聲明"我沒有破壞數據和系統",有的還要借機宣布一下他的倡導:"海內網站大年夜家不要入侵,有本事入侵小日本的!",著末,簽上他的鼎鼎大年夜名是必弗成少的法度榜樣。

如斯大年夜的成績多半環境下僅需動動鼠標就做到了。打開最新版的NBSI 2.0,如圖1所示:輸入地址到A區,留意網址必須是帶通報參數的那種,點擊右邊的檢測按鈕,即出來B區信息,顯示當前用戶為sonybb的權限為PUBLIC,當前庫為lawjia。有點可惜啊,假如是SA權限的話,就可以跨庫注入了。不過,這個權限也足夠獲取該網站治理員帳號和密碼了。點C區下的自動猜解按鈕,即出來當前庫lawjia中的各類表,哇,login表中必然是存治理員帳號和密碼的吧?選中它吧,接著點擊D區下的自動猜解按鈕,急速出來login表里的列名稱,公然是寄放用戶名和密碼的啊,太棒了!從速打上勾,迫不急待的點擊E區下的自動猜解按鈕。沖感民心的時候就要到來啦,只見唰唰地幾下,帳號與密碼整個出來了。剩下的事便是辨別哪一個帳號是治理員了。

圖1(圖中的示例網站在作者本地電腦上運行)

不知那些沒留意過SQL注入破綻的ASP法度榜樣員們看了上圖的例子,要作何感想呢?是不是感覺這個所謂的網站安然破綻檢測對象SBSI 2.0的確便是MS_SQL的企業治理器呢?只不過人家不必要帳號和密碼就可以查看您數據庫里的所有信息了。假如您的網站就這樣被人不費吹灰之力入侵了,您是不是要吐幾升血了呢?大概您已經為系統安然費盡心思了,裝補丁、安防火墻、裝殺毒軟件、奇妙設置設置設備擺設擺設IIS及數據庫用戶權限,但您便是沒有留意到SQL注入破綻,于是"千里之堤,潰于蟻穴"。防火墻與殺毒軟件對SQL注入是沒法子警備的,由于SQL注入入侵跟通俗的WEB頁面造訪沒什么差別,以是每每是防不甚防。而且一個辦事器上放置的網站每每是有很多個的,辦事器治理員弗成能挨個網站挨個頁面的檢察其是否存在SQL注入破綻。那么應該若何警備SQL注入入侵呢?作為辦事器治理員或網站法度榜樣員應該分手怎么做呢?辦事器治理員要做的同族兒如果設置設置設備擺設擺設IIS和數據庫用戶權限,而網站法度榜樣員主如果要在法度榜樣代碼編寫上警備SQL注入入侵。下面具體論述:

對了辦事器治理員,既然你弗成能挨個反省每個網站是否存在SQL注入破綻,那么就來個一個絕招。這個絕招能有效防止SQL注入入侵而且"省心又省力,效果然好!"SQL注入入侵是根據IIS給出的ASP差錯提示信息來入侵的,假如你把IIS設置成不管出什么樣的ASP差錯,只給出一種差錯提示信息,即http 500差錯,那么人家就沒法子入侵了。詳細設置請參看圖2。主要把500:100這個差錯的默認提示頁面 C:\WINDOWS\Help\iisHelp\common\500-100.asp改成

C:\WINDOWS\Help\iisHelp\common\500.htm即可,這時,無論ASP運行中出什么錯,辦事器都只提示HTTP 500差錯。

圖2、IIS掉足信息設置

然則這樣設置一個不好的地方是法度榜樣員編寫的代碼掉足時,辦事器不給出具體的差錯提示信息,會給法度榜樣員帶來很大年夜的不便。不過,辦事器終究不是測試代碼的地方,應堅持平安穩定第一,這樣設置也是無可厚非的,事實上許多辦事器的掉足信息都是如斯設置。

辦事器治理員還應在IIS中為每個網站設置好履行權限,可切切別給人家靜態網站以"腳本和可履行"權限。一樣平常環境下給個"純腳本"權限就夠了,對付那些經由過程網站后臺治理中間上傳的文件寄放的目錄,就更吝嗇一點吧,履行權限設為"無"好了,這樣做是為了防止人家上傳ASP木馬,履行權限設為"無",人家上傳ASP木馬也運行不了。一樣平常環境下,SQL注入破綻僅是涉及一個網站安然的事,假如人家經由過程這個破綻上傳了ASP木馬并運行起來,那全部辦事器都掉陷了。以是有遠見的、有責任心的辦事器和記娛樂博娛188下載治理員應該十分吝嗇的設置設置設備擺設擺設IIS的履行權限。

同樣的吝嗇立場應適用于數據庫用戶的權限設置設置設備擺設擺設上,當然這里數據庫是指MS_SQL啦,ACCESS都沒有用戶權限設置設置設備擺設擺設這一步驟。假如PUBLIC權限足夠應用的毫不給再高的權限,可切切別把SA級其余權限隨隨便便地給人家啊。那個所謂的網站安然破綻檢測對象NBSI 2.0可有跨庫進行SQL注入的功能啊,假如你把SA權限給了存在SQL注入破綻的庫,那其它庫就不保啦!城門火災,殃及池魚呀。而人家還可以經由過程調用xp_cmdshell敕令獲得系統的最高權限。詳細步驟照樣請參看上面提到的那篇《SQL注入破綻全打仗》這篇文章吧。

接下來要講講法度榜樣員的警備步伐了。法度榜樣主要要做兩件事,最緊張的一件事,當然是對客戶端提交的變量參數進行仔細地檢測啦。對客戶端提交的變量進行反省以防止SQL注入,有各類措施,到http://community.和記娛樂博娛188下載csdn.net/上搜索一下,你能得到許多有益信息。這里先容一種現成的措施,別人已經寫好了檢測代碼,拿來用一下,不用自己費力啦。那便是"楓葉SQL通用防注入V1.0 ASP版",這是一段對用戶經由過程網址提交過來的變量參數進行反省的代碼,發明客戶端提交的參數中有"exec、insert、select、delete、from、update、count、user、xp_cmdshell、add、net、Asc"等用于SQL注入的常用字符時,急速竣事履行ASP并給出警告信息或轉向掉足頁面。大年夜家可以到網上搜索一下,下載這段代碼,存為一個ASP頁面,如checkSQL.asp,把這個頁面include到每個必要帶參數查詢SQL數據庫ASP頁面中,記著,只要加一行這樣的代碼就行了。

法度榜樣員要做的第二件事是給用戶密碼加密啦。比如用MD5加密。MD5是沒有反向算法,不能解密的。人家縱然知道經加密后存在數據庫里的像亂碼一樣的密碼,他也沒法子知道原始密碼了。不過,人家可以用UPDATE措施用他的密碼代替你的密碼,但這個操作照樣有點麻煩,人家可能會怕麻煩而放棄。而那個所謂的網站安然破綻檢測對象NBSI 2.0是沒有供給UPDATE操作功能的,以是用MD5加密后,人家僅用NBSI 2.0而不輔以手動操作的話,就弗成能得到網站治理員帳號的密碼,這將蓋住許多菜鳥級的進擊者,至少那些和記娛樂博娛188下載既不懂ASP又不懂SQL、年紀小小的男性青年是沒有法子啦!

文章寫到這,已經夠長了,原先還想對那些所謂的網站安然破綻檢測對象如NBSI之流的黑客對象進行一番理性的探究的,看來照樣放棄好了。為了增強網站安然,懂得進擊手段是必須的,然則,使用漏敞開拓專門的黑客對象,使那些著實并不具備需要的收集技巧和收集安然常識的人(便是文中提到的"既不懂ASP又不懂SQL、年紀小小的男性青年")易如反掌地侵入一家網站,這除了為許多收集治理員制造麻煩外,是否還具有加強收集安然意識前進收集安然水平的功效呢?

免責聲明:以上內容源自網絡,版權歸原作者所有,如有侵犯您的原創版權請告知,我們將盡快刪除相關內容。

您可能還會對下面的文章感興趣:

快三平台开户