• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      SQL注入防護(hù)

      2016-10-17 19:37:25范義山
      科技視界 2016年21期
      關(guān)鍵詞:入侵防范漏洞

      范義山

      【摘 要】SQL注入漏洞對(duì)網(wǎng)站的安全構(gòu)成嚴(yán)重威脅,然而SQL注入漏洞又具有較高的普遍性。因此查找SQL注入漏洞并了解其入侵方式,及時(shí)堵塞網(wǎng)站安全漏洞,是我們網(wǎng)站管理員必須要掌握的。本文以一款SQL注入工具入侵原理入手,講解了其入侵步驟,并給出了防范措施。

      【關(guān)鍵詞】SQL注入;入侵;漏洞;防范

      0 引言

      SQL注入攻擊指的是攻擊者通過構(gòu)建特殊的輸入作為參數(shù)傳入Web應(yīng)用程序(一般通過網(wǎng)頁地址欄或留言板等具有提交功能的欄目輸入),應(yīng)用程序接收后錯(cuò)誤的將攻擊者的輸入作為原始SQL查詢語句的一部分執(zhí)行,導(dǎo)致改變了程序原始的SQL查詢邏輯,額外的執(zhí)行了攻擊者構(gòu)造的SQL查詢語句。攻擊者根據(jù)程序返回的結(jié)果,獲得想得知的某些數(shù)據(jù)(譬如后臺(tái)管理賬戶、密碼),進(jìn)而執(zhí)行攻擊者所要的操作,其主要原因是程序沒有細(xì)致地過濾用戶輸入的數(shù)據(jù),致使信息泄露。

      SQL注入攻擊是黑客對(duì)網(wǎng)站進(jìn)行攻擊、滲透的常用手段,其風(fēng)險(xiǎn)性極高,并且因?yàn)镾QL注入入侵跟普通的WEB頁面訪問沒什么區(qū)別,所以防火墻與殺毒軟件對(duì)SQL注入是沒辦法防范的。由于程序員的水平及經(jīng)驗(yàn)參差不齊,相當(dāng)大一部分程序員在編寫代碼的時(shí)候,沒有對(duì)用戶輸入數(shù)據(jù)的合法性進(jìn)行判斷,導(dǎo)致存在SQL注入漏洞的網(wǎng)站相當(dāng)普遍。如何從根本上進(jìn)行SQL注入防御,降低SQL注入風(fēng)險(xiǎn)具有極其重要的現(xiàn)實(shí)意義。

      1 啊D注入工具入侵原理

      所謂知己知彼,百戰(zhàn)百勝。要想有效防御SQL注入攻擊,就要了解其攻擊原理。本文通過對(duì)一款黑客常用注入工具——啊D注入工具工作原理的講解,來分析SQL注入的防范措施。

      啊D注入工具的攻擊方法實(shí)際上就是逐步測試、逐步猜解,猜解網(wǎng)站數(shù)據(jù)庫中的后臺(tái)管理員表名、字段名、字段值,進(jìn)而獲取到網(wǎng)站的管理員賬號(hào)、密碼,在其它工具獲取網(wǎng)站后臺(tái)登錄地址的前提下,登錄網(wǎng)站后臺(tái),獲取網(wǎng)站控制權(quán),甚至整個(gè)服務(wù)器的管理權(quán)限。

      有了這個(gè)攻擊工具,使得入侵存在SQL注入漏洞的網(wǎng)站成了小兒科的游戲,那些既不懂編程又不懂SQL、年紀(jì)小小的青年常常得以在一天之內(nèi)入侵十多個(gè)網(wǎng)站。

      2 啊D注入工具攻擊步驟

      2.1 啊D注入工具入侵的第一步是尋找注入點(diǎn)

      怎樣才算注入點(diǎn)呢?其實(shí)就是一類URL,就是網(wǎng)站的一些鏈接,在后面人為的添加一些SQL語句、單引號(hào)等之后,這些人為添加的語句可以最終被提交到數(shù)據(jù)庫執(zhí)行,并將結(jié)果在瀏覽器端顯示出來,這樣的URL就是網(wǎng)站的注入點(diǎn)。黑客通過執(zhí)行后不同的返回結(jié)果,來猜解數(shù)據(jù)庫的表名、字段名、字段值,進(jìn)而入侵網(wǎng)站。

      那么啊D注入工具是怎么尋找注入點(diǎn)的呢?實(shí)際上和手工注入一樣,就是通過在一些網(wǎng)站鏈接地址后輸入一些非法字符串,根據(jù)返回的結(jié)果判斷網(wǎng)站是否可以進(jìn)行注入。最常用的就是單引號(hào)測試法和1=2測試法。

      單引號(hào)測試法就是在最后面加上單引號(hào),如果結(jié)果返回“microsoft jet database engine 錯(cuò)誤80040e14”之類的錯(cuò)誤信息,就表示單引號(hào)被連接到SQL語句中執(zhí)行了,就說明在該鏈接地址后面添加SQL語句可以被提交到數(shù)據(jù)庫執(zhí)行,就表示該鏈接地址存在SQL注入漏洞。

      1=2測試法就是在網(wǎng)站鏈接地址后輸入1=2,返回的結(jié)果如果是:BOF或EOF中有一個(gè)是“真”,或者當(dāng)前的記錄已被刪除,所需的操作要求一個(gè)當(dāng)前的記錄,或者原來正常顯示的網(wǎng)頁沒有顯示出來,就表示1=2被連接到SQL語句中執(zhí)行了,就說明在該鏈接地址后面添加SQL語句可以被提交到數(shù)據(jù)庫執(zhí)行,就表示該鏈接地址存在SQL注入漏洞。

      2.2 猜解表名

      假如http://localhost/article.aspx?id=124是一個(gè)注入點(diǎn),要用它來猜解表名。怎么提交?

      http://localhost/article.aspx?id=124 and exists(select count(*) from admin)

      然后看頁面返回了,返回正常就表示該表存在,否則就不存在了。啊D工具就是這樣猜解的,它的軟件數(shù)據(jù)庫里面有很多提前添加好的表名。然后猜解的時(shí)候就是挨個(gè)試了。

      2.3 猜解字段名

      有了表名,下一步就是猜解字段了。需要用到這樣的語句:http://localhost/article.aspx?id=124 and exists(select username from admin)

      也就是將count(*)換成了字段名。將設(shè)置列表中的字段挨個(gè)進(jìn)去匹配。頁面返回正常就表示字段存在,否則就不存在。

      2.4 猜解字段長度

      字段有了,下一步就是猜解字段值了,先猜解字段長度。

      http://localhost/article.aspx?id=124 and (select top 1 len(username) from admin)>0

      http://localhost/article.aspx?id=124 and (select top 1 len(username) from admin)>5

      http://localhost/article.aspx?id=124 and (select top 1 len(username) from admin)>6

      |直到準(zhǔn)確判斷出長度為止。其中的len()函數(shù)負(fù)責(zé)計(jì)算username中第一條記錄的長度。

      2.5 猜解字段值

      知道了長度,下一步就是準(zhǔn)確猜解每一位的值。

      and(select top 1 asc(mid(username,1,1))from admin)>97

      and(select top 1 asc(mid(username,1,1))from admin)>98

      and(select top 1 asc(mid(username,1,1))from admin)>99

      and(select top 1 asc(mid(username,1,1))from admin)=100

      解析一下這個(gè)語句的含義。就是一些函數(shù)的使用技巧, asc() 負(fù)責(zé)查詢某個(gè)字符的ascii碼值,mid(addr,start,len)這個(gè)函數(shù)負(fù)責(zé)選取某個(gè)字符串中從start開始len位的字符。本語句就是取出字符串的第一個(gè)字符了。當(dāng)然第二個(gè)字符:

      and(select top 1 asc(mid(username,2,1))from admin)>99就是這樣算的了,取出每一位的結(jié)果之后,轉(zhuǎn)換為對(duì)應(yīng)的字符就是用戶名或者密碼了。

      這就是為什么猜解表名、字段的時(shí)候,都是一條一條的出結(jié)果,而猜解字段值的時(shí)候,是一個(gè)字符一個(gè)字符的出結(jié)果了。

      3 SQL注入攻擊的防御辦法

      知道了黑客入侵的原理,也就知道怎么對(duì)應(yīng)的做好防護(hù)了。從阿D注入工具入侵的步驟來看,主要就是通過提交非法SQL語句,根據(jù)不同的返回信息來確定猜測的表名、字段名、字段值是否正確,通過不斷的窮舉,最終猜解到準(zhǔn)確的表名、字段名、字段值。所以防御的辦法就是阻斷猜解過程,一是不讓非法SQL語句提交、執(zhí)行,二是不讓出錯(cuò)信息在瀏覽器端顯示出來。下面詳細(xì)敘述:

      1)對(duì)用戶在地址欄的輸入、傳入的Request函數(shù)等進(jìn)行校驗(yàn),通過正則表達(dá)式,對(duì)單引號(hào)、SQL語句等進(jìn)行判斷和過濾,阻止非法SQL語句的執(zhí)行,防止SQL注入。

      2)修改web服務(wù)器參數(shù)設(shè)置。SQL注入入侵是根據(jù)web服務(wù)錯(cuò)誤提示信息來獲取信息進(jìn)行入侵的??梢园褀eb服務(wù)器設(shè)置成不管出什么樣的錯(cuò)誤,只給出一種錯(cuò)誤提示信息,即http 500錯(cuò)誤,攻擊者就沒辦法從提示信息中獲取有用信息進(jìn)行入侵了,注入工具也沒有辦法了。這個(gè)方法即簡單又有效,缺點(diǎn)就是代碼出錯(cuò)時(shí),會(huì)給程序的調(diào)試帶來很大的不便。不過,服務(wù)器畢竟不是測試代碼的地方,應(yīng)堅(jiān)持安全穩(wěn)定第一,事實(shí)上許多服務(wù)器的出錯(cuò)信息都是如此設(shè)置。

      另外,利用檢測工具和手工檢測方法,對(duì)網(wǎng)站進(jìn)行檢測,一旦發(fā)現(xiàn)存在漏洞,就對(duì)被注入的地址進(jìn)行參數(shù)過濾和檢查。

      【參考文獻(xiàn)】

      [1]方偉,方欣,一個(gè)通用防止SQL注入系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].湖南理工學(xué)院學(xué)報(bào):自然科學(xué)版,2012,12:25(4).

      [2]楊省偉,楊浩杰.SQL注入數(shù)據(jù)庫攻擊與防御技術(shù)研究[J].長沙大學(xué)學(xué)報(bào),2013,9:27(5).

      [3]吳金秀.SQL注入攻擊與防御[J].陜西交通職業(yè)技術(shù)學(xué)院學(xué)報(bào),2012(4).

      [責(zé)任編輯:王偉平]

      猜你喜歡
      入侵防范漏洞
      漏洞
      三明:“兩票制”堵住加價(jià)漏洞
      商業(yè)銀行信貸風(fēng)險(xiǎn)淺析及防范
      論企業(yè)并購中的財(cái)務(wù)風(fēng)險(xiǎn)及防范措施
      淺析防范電能表串戶的重要性及方法
      從工商管理角度談如何加強(qiáng)金融風(fēng)險(xiǎn)防范的有效性
      漏洞在哪兒
      高鐵急救應(yīng)補(bǔ)齊三漏洞
      日媒:美虛偽的中國商品“入侵”論
      內(nèi)地非法卵子被傳“入侵”香港
      海伦市| 西吉县| 赤峰市| 泸水县| 兰西县| 白城市| 滦南县| 营山县| 团风县| 来安县| 彭水| 仙游县| 南乐县| 孝义市| 河西区| 正镶白旗| 武邑县| 海淀区| 彩票| 肇庆市| 灌云县| 兰考县| 安乡县| 峨眉山市| 手游| 阿克| 岱山县| 江津市| 永川市| 屏东县| 宜丰县| 手游| 繁峙县| 北流市| 临漳县| 济源市| 龙游县| 永定县| 肇东市| 康平县| 宁阳县|