亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        某網(wǎng)站SQL注入漏洞修補

        2017-09-04 12:42:45范義山
        科技視界 2017年9期
        關(guān)鍵詞:修補

        范義山

        【摘 要】網(wǎng)站SQL注入漏洞風(fēng)險性極大,并且非常普遍,要檢查網(wǎng)站是否有SQL注入漏洞非常容易,但是要修補SQL注入漏洞,還是需要一定的編碼能力和實際經(jīng)驗。本文以一個真實的SQL注入漏洞修補過程為例,講解注入漏洞修補方法。

        【關(guān)鍵詞】SQL注入漏洞;修補;正則表達式

        近日,我單位某部門網(wǎng)站被教育行業(yè)漏洞報告平臺報告含有SQL注入漏洞,并給出了具體的路徑、參數(shù)和截圖,經(jīng)我們驗證漏洞確實存在。

        1 漏洞現(xiàn)狀

        漏洞一為一個URL型注入漏洞,網(wǎng)址為http://**.***.com/more3.aspx?menuid=11&;&childid=21,在網(wǎng)址后面手工添加and 1=1,網(wǎng)頁依然正常顯示,而改成and 1=2之后,網(wǎng)頁沒有顯示,說明手工添加的數(shù)據(jù)都作為參數(shù)提交到數(shù)據(jù)庫執(zhí)行了,說明存在注入漏洞,如果將添加的內(nèi)容改為其他的SQL語句可以對數(shù)據(jù)庫進行其他的非授權(quán)操作。

        漏洞二為一個搜索型注入漏洞,網(wǎng)址為網(wǎng)站首頁(http://**.***.com/),首頁左側(cè)有一個搜索信息功能,后臺頁面search.aspx沒有對在該文本框中輸入的搜索信息過濾,如果攻擊者在搜索框中填寫了特殊的SQL語句,也會提交到數(shù)據(jù)庫執(zhí)行,導(dǎo)致信息泄露,甚至數(shù)據(jù)庫被破解,后臺被掌控,帶來很大的安全隱患。

        漏洞三為一個登錄型注入漏洞,網(wǎng)址為網(wǎng)站后臺登陸頁面(http://**.***.com/login.aspx),在用戶名或密碼框中輸入拼接的SQL語句(如' or '1'='1),可以直接登陸后臺,網(wǎng)站完全被黑客控制。

        2 漏洞原理

        SQL注入是攻擊者在URL地址、提交的表單數(shù)據(jù)中人為構(gòu)造畸形的SQL語句,欺騙后臺程序?qū)?shù)據(jù)庫執(zhí)行未授權(quán)的查詢、增、刪、改等操作,進而獲取網(wǎng)站的管理員賬號,掌握網(wǎng)站控制權(quán),篡改網(wǎng)頁。

        最簡單的例子就是在密碼框password中輸入' or '1'='1,那么SQL查詢語句就變成了:

        select * from users where password='' or '1'='1'

        這個查詢永遠為真,攻擊者不需要用戶名密碼就可以登錄后臺。

        3 修補原理'

        根據(jù)SQL注入原理,要阻止SQL注入就是要過濾掉非法的數(shù)據(jù)提交,不讓非法語句提交到數(shù)據(jù)庫執(zhí)行。如何識別非法數(shù)據(jù),就成為漏洞修補的關(guān)鍵??梢詮恼磧煞矫鎭砼袛鄶?shù)據(jù)是否合法,如果能確定合法數(shù)據(jù)的字符組合特征,并且非法數(shù)據(jù)肯定不符合該字符組合特征,則可以從識別合法數(shù)據(jù)的角度來過濾數(shù)據(jù)。如果合法數(shù)據(jù)的字符組合特征也包含了非法數(shù)據(jù)的可能,而非法數(shù)據(jù)的特征比較明顯,則可以從識別非法數(shù)據(jù)的角度來過濾數(shù)據(jù)。

        設(shè)定合適的字符組合規(guī)則和選用合適的工具進行匹配就是數(shù)據(jù)過濾的關(guān)鍵。正則表達式(又稱規(guī)則表達式,在代碼中常簡寫為regex、regexp或RE)就是一個非常合適的匹配工具,可以用來對提交的數(shù)據(jù)與預(yù)先設(shè)定好的規(guī)則進行匹配。主流的程序設(shè)計語言都支持利用正則表達式進行字符串操作。

        4 修補方案

        4.1 漏洞一修補方案

        因為menuid,childid兩個參數(shù)的合法值全部為數(shù)字,而非法數(shù)據(jù)含SQL語句,肯定不會全部為數(shù)字,所以可以從識別合法數(shù)據(jù)的角度來進行數(shù)據(jù)過濾。

        正則表達式設(shè)定為\d{1,5},即1到5位數(shù)字。采用if(!Regex.IsMatch(menuid, @"^\d{1,5}$"))來判斷menuid參數(shù)是否不匹配該正則表達式,如果不匹配,則彈出警告,不提交到數(shù)據(jù)庫中執(zhí)行。其中^表示匹配字符串的開始,$表示匹配字符串的結(jié)束,@符號表示后面字符串中的轉(zhuǎn)義序列“不”被處理。代碼如下:

        using System.Text.RegularExpressions; /*引入命名空間*/

        if(!Regex.IsMatch(menuid,?@"^\d{1,5}$"))

        {

        Response.Write ("檢測到SQL注入危險, 請勿非法操作!");

        Response.End();

        }

        if(!Regex.IsMatch(childid,?@"^\d{1,5}$"))

        {

        Response.Write ("檢測到SQL注入危險, 請勿非法操作!");

        Response.End();

        }

        4.2 漏洞二修補方案

        因為合法數(shù)據(jù)為字符串,而非法數(shù)據(jù)也為字符串,所以不好從識別合法數(shù)據(jù)的角度進行數(shù)據(jù)過濾。但非法數(shù)據(jù)中含select、update、delete、insert、or、and、=、等SQL語句中的關(guān)鍵詞,可以從識別非法數(shù)據(jù)的角度來進行數(shù)據(jù)過濾。代碼如下:

        using System.Text.RegularExpressions;

        string pattern =@"'|;|#|([\s\b+()]+(select|update|insert|delete|declare|@|exec|dbcc|alter|drop|create|backup|if|else|end|and|or|add|set|open|close|use|begin|retun|as|go|exists)[\s\b+]*)";

        Regex rgx = new Regex(pattern, RegexOptions.IgnoreCase);

        if (rgx.IsMatch(title)) /* title為搜索框信息變量 */

        {

        Response.Write ("檢測到SQL注入危險, 請勿非法操作!");

        Response.End();

        }

        4.3 漏洞三修補方案

        漏洞三的修補和漏洞二一樣,也是從識別非法數(shù)據(jù)的角度進行過濾,只需將方案二中的title變量改成用戶名、密碼的變量username、password,然后分別檢測即可。將漏洞二、漏洞三設(shè)置成兩個類別的目的是為了提醒程序員,黑客可以從搜索框、用戶名密碼框進行注入。

        5 系統(tǒng)調(diào)試

        5.1 手工測試

        對漏洞一,采用單引號測試法(在網(wǎng)址后面添加單引號)、1=1測試法(在網(wǎng)址后面添加 and 1=1或and 1=2),發(fā)現(xiàn)都會彈出注入警告,不再出現(xiàn)正常顯示的網(wǎng)頁或錯誤代碼,證明非法數(shù)據(jù)被識別,未提交數(shù)據(jù)庫執(zhí)行。

        對漏洞二、三,分別在搜索框、用戶名密碼框中輸入' or '1'='1,發(fā)現(xiàn)都會彈出注入警告,不再出現(xiàn)正常顯示的網(wǎng)頁或錯誤代碼或登錄成功,證明非法數(shù)據(jù)未提交數(shù)據(jù)庫執(zhí)行。

        5.2 工具軟件測試

        采用工具軟件SQLMAP進行注入測試,均提示” [CRITICAL] all tested parameters appear to be not injectable” ,說明已經(jīng)不可注入,證明漏洞已經(jīng)修補。

        6 結(jié)語

        注入漏洞風(fēng)險性極大,應(yīng)該引起足夠重視。正則表達式能有效的對數(shù)據(jù)進行合法性檢驗,過濾非法數(shù)據(jù),保障網(wǎng)站安全。另外,還應(yīng)在防火墻上做相應(yīng)的防護策略,阻止黑客對網(wǎng)站的滲透測試,滲透測試雖然不一定能成功,但會嚴(yán)重占用服務(wù)器CPU、內(nèi)存資源,降低網(wǎng)站反應(yīng)速度,甚至對網(wǎng)站的穩(wěn)定性、可用性帶來很大威脅。最后,采用網(wǎng)頁靜態(tài)化技術(shù)可以有效降低網(wǎng)站被注入的危險,提高網(wǎng)站安全性。

        [責(zé)任編輯:朱麗娜]endprint

        猜你喜歡
        修補
        腹腔鏡手術(shù)治療胃穿孔療效分析
        淺析橋梁工程混凝土裂縫控制及修補技術(shù)
        科技視界(2016年18期)2016-11-03 23:35:38
        淺談建筑混凝土結(jié)構(gòu)裂縫的修補設(shè)計與方法
        試議混凝土施工技術(shù)在道橋施工中的應(yīng)用
        科技視界(2016年16期)2016-06-29 07:46:19
        淺談瀝青路面常見病害及維護措施
        科技視界(2016年14期)2016-06-08 16:40:41
        瀝青路面坑槽成因及修補措施分析
        科技視界(2016年11期)2016-05-23 20:11:09
        G30線永山高速公路瀝青路面修補常見問題原因分析及質(zhì)量控制措施
        科技視界(2016年8期)2016-04-05 08:50:00
        技術(shù)的使命:在“修補”中完善設(shè)計
        鋼板粘貼法在某高樁碼頭加固改造中的應(yīng)用
        中國水運(2015年9期)2015-11-05 12:19:46
        混凝土裂縫修補過程中新材料的作用
        居業(yè)(2015年6期)2015-09-05 19:41:27
        国产成人av免费观看| 黄色国产一区二区99| 99久久久无码国产精品性| 最近最新中文字幕| 国产成人亚洲综合无码精品| 国产一区二区三区影片| 久久99天堂av亚洲av| 天下第二社区在线视频| 尤物视频一区二区| 农村国产毛片一区二区三区女| av网站在线观看亚洲国产| 亚洲国产日韩精品一区二区三区 | 乱人伦人妻中文字幕无码| 日本不卡视频网站| 男女啪啪免费视频网址 | 亚洲香蕉成人AV网站在线观看| 久久久2019精品视频中文字幕| 中文字幕一区二区三区四区| 亚洲成a∨人片在线观看不卡 | 免费a级毛片无码a| 亚洲AV手机专区久久精品| 中文字幕一区二区三区日日骚 | 18禁超污无遮挡无码免费游戏| 日韩精品一区二区三区毛片| 亚洲乱码av一区二区蜜桃av| 东京热久久综合久久88| 日本www一道久久久免费榴莲| 水蜜桃视频在线观看免费18| 日本伊人精品一区二区三区| 曰本大码熟中文字幕| 免费国产黄线在线播放| 蜜桃av在线播放视频| 亚洲亚洲人成综合丝袜图片| 国产精品久久久久免费a∨| 亚洲精品一区二区三区av| 97精品人妻一区二区三区蜜桃| 老师脱了内裤让我进去| 国产思思久99久精品| 国产自拍在线观看视频| 国产一区二区波多野结衣| 黑人巨大精品欧美在线观看|