基于云環(huán)境的sql注入檢測系統(tǒng)及方法
【專利摘要】本發(fā)明提供了一種基于云環(huán)境的SQL注入檢測系統(tǒng),包括客戶機、云服務器和目標主機,所述云服務器包括SQL顯錯注入單元,所述SQL顯錯注入單元根據(jù)所述客戶機發(fā)送的對N個數(shù)據(jù)庫/表/列/記錄信息的注入請求的注入類型,依次向所述目標主機發(fā)送分別獲取對應數(shù)據(jù)庫/表/列/記錄信息的N個請求,并將所述目標主機每次并行返回的對應數(shù)據(jù)庫/表/列/記錄信息的N個請求結果進行合并后,發(fā)送給所述客戶機。本發(fā)明還提供了一種基于云環(huán)境的SQL注入檢測方法。
【專利說明】基于云環(huán)境的301注入檢測系統(tǒng)及方法
【技術領域】
[0001]本發(fā)明涉及計算機【技術領域】,尤其涉及一種基于云環(huán)境的3亂注入檢測系統(tǒng)及方法。
【背景技術】
[0002]801注入就是通過把3亂命令插入到16^表單遞交或輸入域名或頁面請求的查詢字符串,最終達到欺騙服務器執(zhí)行惡意的3亂命令。
[0003]具體來說,它是利用現(xiàn)有應用程序,將(惡意)的3亂命令注入到后臺數(shù)據(jù)庫引擎執(zhí)行的能力,它可以通過在1613表單中輸入(惡意)3嘰語句得到一個存在安全漏洞的網(wǎng)站上的數(shù)據(jù)庫,而不是按照設計者意圖去執(zhí)行3亂語句。
[0004]現(xiàn)有技術中的3亂顯錯注入流程由客戶機直接向目標主機串行發(fā)送請示,所進行的操作均在客戶機/目標主機上執(zhí)行,如圖1所示,包括步驟:
[0005]1)注入判斷注入類型,是數(shù)字型注入、字符型注入還是搜索型注入;
[0006]2)然后探測數(shù)據(jù)庫信息,是133亂、800688? 01-8061還是17301等;
[0007]3)通過改變變量0」0的值,由1到I依次獲取第1個數(shù)據(jù)庫庫名、第2個數(shù)據(jù)庫庫名……第~個數(shù)據(jù)庫庫名;
[0008]4)通過改變變量乙10的值,由1到I依次獲取第1個表表名、第2個表表名……第~個表表名;
[0009]5)通過改變變量的值,由1到化依次獲取表第一個列名、第2個列名……第^個列名;
[0010]6)通過改變變量110的值,由1到I依次獲取列第1條數(shù)據(jù)、第2條數(shù)據(jù)……第~條數(shù)據(jù)。
[0011]可見,傳統(tǒng)的3亂注入檢測方法注入速度非常慢,且3亂盲注流程中我們不了解任何操作結果,只能靠一個個字符去猜解。因此,在獲取數(shù)據(jù)名、表名、列名和記錄時,可以加入折半法猜解以加速注入速度,主要步驟如下:
[0012]1)注入判斷注入類型,是數(shù)字型注入、字符型注入還是搜索型注入;
[0013]2)然后探測數(shù)據(jù)庫信息,是133亂、3(^688、還是17301等;
[0014]3)猜解第一個數(shù)據(jù)庫庫名第1個字母的八XII碼、第2個字母的八XII碼……第~個個字母的八碼,得出第一個數(shù)據(jù)庫名;
[0015]4)重復步驟3,猜解所有數(shù)據(jù)庫庫名;
[0016]5)猜解第一個數(shù)據(jù)表表名第1個字母的八XII碼、第2個字母的八XII碼……第~個字母的八XII碼,得出第一個數(shù)據(jù)表表名;
[0017]6)重復步驟5,得出所有數(shù)據(jù)表表名;
[0018]7)猜解第一個列名的第1個字母的八XII碼、猜解第2個字母的八XII碼……猜解第~個字母的八碼,得出第一個列的名稱;
[0019]8)重復步驟7,得出所有列名;
[0020]9)猜解第一個列的第一個記錄的第1個字母的八XII碼、第2個字母的…011碼……第~個字母的八碼,得出記錄的值;
[0021]10)重復步驟9,得出所有列的記錄
[0022]雖然根據(jù)以上的注入方法,能正常注入并獲取所要的數(shù)據(jù)信息,但仍存在以下問題:
[0023]1)注入時,一個表或者字符猜解,注入速度慢,效率低。
[0024]2)同一個I?向服務器發(fā)送大量請求,容易被防火墻識別并阻斷。
【發(fā)明內容】
[0025]本發(fā)明的目的提供一種基于云環(huán)境的3亂注入檢測系統(tǒng)和方法,能夠極大縮短了注入檢測的時間,并且可以繞過103或防火墻的檢測。
[0026]為實現(xiàn)上述目的,本發(fā)明提供了一種基于云環(huán)境的3嘰注入檢測系統(tǒng),包括客戶機、云服務器和目標主機,所述云服務器包括3嘰顯錯注入單元,所述3嘰顯錯注入單元根據(jù)所述客戶機發(fā)送的對~個數(shù)據(jù)庫/表/列/記錄信息的注入請求的注入類型,依次向所述目標主機發(fā)送分別獲取對應數(shù)據(jù)庫/表/列/記錄信息的~個請求,并將所述目標主機每次并行返回的對應數(shù)據(jù)庫/表/列/記錄信息的~個請求結果進行合并后,發(fā)送給所述客戶機。
[0027]作為上述技術方案的改進,所述云服務器還包括折半法猜解單元,所述折半法猜解單元基于所述3亂顯錯注入單元接收所述目標主機每次并行返回的對應數(shù)據(jù)庫/表/列/記錄信息的~個請求結果,對每一個所述請求結果的關于數(shù)據(jù)庫/表/列/記錄信息長度的1個字符,依次向所述目標主機并行發(fā)送猜解數(shù)據(jù)庫/表/列/記錄信息的1個折半請求,并將所述目標主機每次并行返回的對應猜解數(shù)據(jù)庫/表/列/記錄信息的1個折半請求結果進行字符轉換和合并,從而獲得猜解后的數(shù)據(jù)庫/表/列/記錄信息。
[0028]本發(fā)明還公開了一種基于云環(huán)境的3阢注入檢測方法,包括步驟:
[0029]31、云服務器接收客戶機并行發(fā)送的對~個數(shù)據(jù)庫/表/列/記錄信息的注入請求,并判斷注入請求的注入類型以及探測所述~個數(shù)據(jù)庫類型;
[0030]32、云服務器基于所述注入請求,依次向所述目標主機發(fā)送分別獲取對應數(shù)據(jù)庫/表/列記錄信息的~個請求;
[0031]33、云服務器依次接收所述目標主機每次并行返回的對應數(shù)據(jù)庫/表/列/記錄信息的~個請求結果;
[0032]34、云服務器將每次接收到的所述~個請求結果合并后發(fā)送給所述客戶機。
[0033]作為上述技術方案的改進,所述步驟53和34之間還包括步驟;
[0034]331、云服務器對每一個所述請求結果的關于數(shù)據(jù)庫/表/列/記錄信息長度的1個字符,依次向所述目標主機并行發(fā)送猜解數(shù)據(jù)庫/表/列/記錄信息的1個折半請求;
[0035]332、云服務器依次接收所述目標主機每次并行返回的對應猜解數(shù)據(jù)庫/表/列/記錄信息的1個折半請求結果;
[0036]333、云服務器將每次接收到的1個折半請求結果進行字符轉換和合并,從而獲得猜解后的數(shù)據(jù)庫/表/列/記錄信息;
[0037]所述步驟34具體為:
[0038]云服務器將每次猜解后的數(shù)據(jù)庫/表/列/記錄信息的N個請求結果合并后發(fā)送給所述客戶機。
[0039]與現(xiàn)有技術相比,本發(fā)明公開的基于云環(huán)境的SQL注入檢測系統(tǒng)及方法具有以下有益效果:
[0040]I)通過調度云端服務器對SQL注入檢測,SQL注入檢測操作基本在云端服務器進行,大大減少客戶機的性能配置和網(wǎng)絡帶寬要求。
[0041]2)云端服務器并行對SQL注入檢測,形成結果后返回客戶機,極大縮短了注入檢測的時間。
[0042]3) 一些基于行為檢測的IDS,如果某IP短時間有大量連接時,可能會報警。本發(fā)明公開的基于云環(huán)境的SQL注入檢測系統(tǒng)及方法使用云端服務器分散目標發(fā)送連接請求,請求連接數(shù)遠遠低于IDS的閥值,可以繞過IDS或防火墻的檢測。
[0043]4)本發(fā)明公開的基于云環(huán)境的SQL注入檢測系統(tǒng)及方法,并不是客戶機直接向目標主機發(fā)送請示,而是通過云端服務器發(fā)送連接請求,增加被反向追蹤的難度。
【專利附圖】
【附圖說明】
[0044]為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術中的技術方案,下面將對實施例或現(xiàn)有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0045]圖1是現(xiàn)有技術中一種SQL注入檢測的流程圖。
[0046]圖2是本發(fā)明實施例1的一種基于云環(huán)境的SQL注入檢測系統(tǒng)的結構框圖。
[0047]圖3是圖2所示的SQL注入檢測系統(tǒng)的SQL顯錯注入單元的工作過程示意圖。
[0048]圖4是本發(fā)明實施例2的一種基于云環(huán)境的SQL注入檢測系統(tǒng)的結構框圖。
[0049]圖5圖4所示的SQL注入檢測系統(tǒng)的折半法猜解單元的工作過程示意圖。
[0050]圖6是本發(fā)明實施例3的一種基于云環(huán)境的SQL注入檢測方法的流程圖。
[0051]圖7是本發(fā)明實施例4的一種基于云環(huán)境的SQL注入檢測方法的流程圖。
【具體實施方式】
[0052]下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
[0053]實施例1
[0054]參見圖2,是本發(fā)明實施例提供的一種基于云環(huán)境的SQL注入檢測系統(tǒng)的結構框圖。該基于云環(huán)境的SQL注入檢測系統(tǒng)100包括:客戶機10、云服務器20和目標主機30,所述云服務器20包括依次連接的第一輸入/輸出接口 201、SQL顯錯注入單元202和第二輸入/輸出接口 203,所述第一輸入/輸出接口 201對應連接所述客戶機10,所述第二輸入/輸出接口 203對應連接所述目標主機30,其中,結合圖2和圖3:
[0055]所述客戶機10通過所述云服務器20的第一輸入/輸出接口 201向所述云服務器20發(fā)送對~個數(shù)據(jù)庫/表/列/記錄信息的注入請求。
[0056]所述3嘰顯錯注入單元202根據(jù)所述第一輸入/輸出接口 201接收的注入請求,判斷所述注入請求的注入類型為數(shù)字型注入、字符型注入還是搜索型注入,以及探測所述數(shù)據(jù)庫為似3亂、3⑶688、01^061還是1丫3亂后,基于判斷和探測的結果,通過所述第二輸入/輸出接口 203依次向所述目標主機發(fā)送分別獲取對應數(shù)據(jù)庫/表/列/記錄信息的~個請求。
[0057]所述目標主機30每次接收所述云服務器20并行發(fā)送過來的獲取對應數(shù)據(jù)庫/表/列/記錄信息的~個請求時,通過所述第二輸入/輸出接口 203向所述云服務器20并行返回對應數(shù)據(jù)庫/表/列/記錄信息的~個請求結果。
[0058]所述3嘰顯錯注入單元202接收所述第二輸入/輸出接口 203每次接收到的對應數(shù)據(jù)庫/表/列/記錄信息的~個請求結果,并且待所述目標主機30返回的所有對應數(shù)據(jù)庫、表、列和記錄信息后,將所有信息進行合并,并將合并后的數(shù)據(jù)通過所述第一輸入/輸出接口 201發(fā)送給所述客戶機10。
[0059]下面以一個具體實施例進行說明,例如,當所述云服務器20接收客戶機10想要獲取某個數(shù)據(jù)庫的~個表中的密碼的注入請求時,所述云服務器20的3亂顯錯注入單元202同時向所述目標主機30發(fā)送獲取對應數(shù)據(jù)庫的~個表的密碼信息的~個請求,每一個請求對應獲取一個表的密碼信息。所述目標主機30接收到該~個請求后,即向所述云服務器20并行返回對應數(shù)據(jù)庫的~個表的密碼信息的~個請求結果,所述云服務器20的3亂顯錯注入單元202將所述~個請求結果合并后一同發(fā)送給所述客戶機10。
[0060]可見,本實施例通過調度云端服務器對3亂注入檢測,能夠極大縮短了注入檢測的時間,并且可以繞過103或防火墻的檢測。
[0061]實施例2
[0062]參見圖4?5,是本發(fā)明實施例提供的另一種基于云環(huán)境的3亂注入檢測系統(tǒng)的結構框圖。與實施例1 一樣,本實施例的基于云環(huán)境的3亂注入檢測系統(tǒng)200包括:客戶機10、云服務器20和目標主機30,所述云服務器20包括依次連接的第一輸入/輸出接口201,801顯錯注入單元202和第二輸入/輸出接口 203,所述第一輸入/輸出接口 201對應連接所述客戶機10,所述第二輸入/輸出接口 203對應連接所述目標主機30。不同的是,本實施例的云服務器20還包括折半法猜解單元204。所述折半法猜解單元204用于:
[0063]基于所述3亂顯錯注入單元202接收所述目標主機30每次并行返回的對應數(shù)據(jù)庫/表/列/記錄信息的~個請求結果,對每一個所述請求結果的關于數(shù)據(jù)庫/表/列/記錄信息長度的1個字符,依次通過所述第二輸入/輸出接口 203向所述目標主機30并行發(fā)送猜解數(shù)據(jù)庫/表/列/記錄信息的1個折半請求,并將所述目標主機30每次并行返回的(通過所述第二輸入/輸出接口 203)對應猜解數(shù)據(jù)庫/表/列/記錄信息的1個折半請求結果進行字符轉換和合并,從而獲得猜解后的數(shù)據(jù)庫/表/列/記錄信息。
[0064]下面以一個具體實施例進行說明,例如,當所述3亂顯錯注入單元202接收所述目標主機30返回的數(shù)據(jù)庫表名的(字符)長度為1,折半法猜解單元204通過所述第二輸入/輸出接口 203向所述目標主機30并行發(fā)送猜解表名的1個折半請求,每一個折半請求對應請求拆解一個字符的八33(:1碼。所述目標主機30接收到該1個折半請求后,即向所述云服務器20并行返回對應猜解表名的的1個請求結果,所述云服務器20的折半法猜解單元204接收所述M個請求結果后轉換為字符,并按照順序合并,從而可以快速猜解出表名。
[0065]可見,本實施例在實施例1的基礎上,增加折半法猜解單元204以加速SQL盲注的速度。
[0066]實施例3
[0067]參考圖6,本實施例公開了一種基于云環(huán)境的SQL注入檢測方法,包括步驟:
[0068]S501、云服務器接收客戶機并行發(fā)送的對N個數(shù)據(jù)庫/表/列/記錄信息的注入請求,并判斷注入請求的注入類型以及探測所述N個數(shù)據(jù)庫類型;
[0069]S502、云服務器基于所述注入請求,依次向所述目標主機發(fā)送分別獲取對應數(shù)據(jù)庫/表/列記錄信息的N個請求;
[0070]S503、云服務器依次接收所述目標主機每次并行返回的對應數(shù)據(jù)庫/表/列/記錄信息的N個請求結果;
[0071]S504、云服務器將每次接收到的所述N個請求結果合并后發(fā)送給所述客戶機。
[0072]實施例4
[0073]參考圖7,本實施例公開了一種基于云環(huán)境的SQL注入檢測方法,包括步驟:
[0074]S601、云服務器接收客戶機并行發(fā)送的對N個數(shù)據(jù)庫/表/列/記錄信息的注入請求,并判斷注入請求的注入類型以及探測所述N個數(shù)據(jù)庫類型;
[0075]S602、云服務器基于所述注入請求,依次向所述目標主機發(fā)送分別獲取對應數(shù)據(jù)庫/表/列記錄信息的N個請求;
[0076]S603、云服務器依次接收所述目標主機每次并行返回的對應數(shù)據(jù)庫/表/列/記錄信息的N個請求結果;
[0077]S604、云服務器對每一個所述請求結果的關于數(shù)據(jù)庫/表/列/記錄信息長度的M個字符,依次向所述目標主機并行發(fā)送猜解數(shù)據(jù)庫/表/列/記錄信息的M個折半請求;
[0078]S605、云服務器依次接收所述目標主機每次并行返回的對應猜解數(shù)據(jù)庫/表/列/記錄信息的M個折半請求結果;
[0079]S606、云服務器將每次接收到的M個折半請求結果進行字符轉換和合并,從而獲得猜解后的數(shù)據(jù)庫/表/列/記錄信息;
[0080]S607、云服務器將每次猜解后的數(shù)據(jù)庫/表/列/記錄信息的N個請求結果合并后發(fā)送給所述客戶機。
[0081]本實施例與實施例3所述公開的基于云環(huán)境的SQL注入檢測方法不同在于,本實施例還添加了折半法猜解的多個步驟,從而加速SQL盲注的速度。
[0082]綜上所述,本發(fā)明公開的基于云環(huán)境的SQL注入檢測系統(tǒng)及方法具有以下有益效果:
[0083]I)通過調度云端服務器對SQL注入檢測,SQL注入檢測操作基本在云端服務器進行,大大減少客戶機的性能配置和網(wǎng)絡帶寬要求。
[0084]2)云端服務器并行對SQL注入檢測,形成結果后返回客戶機,極大縮短了注入檢測的時間。
[0085]3) 一些基于行為檢測的IDS,如果某IP短時間有大量連接時,可能會報警。本發(fā)明公開的基于云環(huán)境的SQL注入檢測系統(tǒng)及方法使用云端服務器分散目標發(fā)送連接請求,請求連接數(shù)遠遠低于IDS的閥值,可以繞過IDS或防火墻的檢測。
[0086]4)本發(fā)明公開的基于云環(huán)境的301注入檢測系統(tǒng)及方法,并不是客戶機直接向目標主機發(fā)送請示,而是通過云端服務器發(fā)送連接請求,增加被反向追蹤的難度。
[0087]以上所述是本發(fā)明的優(yōu)選實施方式,應當指出,對于本【技術領域】的普通技術人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也視為本發(fā)明的保護范圍。
【權利要求】
1.一種基于云環(huán)境的SQL注入檢測系統(tǒng),其特征在于,包括客戶機、云服務器和目標主機,所述云服務器包括SQL顯錯注入單元,所述SQL顯錯注入單元根據(jù)所述客戶機發(fā)送的對N個數(shù)據(jù)庫/表/列/記錄信息的注入請求的注入類型,依次向所述目標主機發(fā)送分別獲取對應數(shù)據(jù)庫/表/列/記錄信息的N個請求,并將所述目標主機每次并行返回的對應數(shù)據(jù)庫/表/列/記錄信息的N個請求結果進行合并后,發(fā)送給所述客戶機。
2.如權利要求1所述的基于云環(huán)境的SQL注入檢測系統(tǒng),其特征在于,所述云服務器還包括折半法猜解單元,所述折半法猜解單元基于所述SQL顯錯注入單元接收所述目標主機每次并行返回的對應數(shù)據(jù)庫/表/列/記錄信息的N個請求結果,對每一個所述請求結果的關于數(shù)據(jù)庫/表/列/記錄信息長度的M個字符,依次向所述目標主機并行發(fā)送猜解數(shù)據(jù)庫/表/列/記錄信息的M個折半請求,并將所述目標主機每次并行返回的對應猜解數(shù)據(jù)庫/表/列/記錄信息的M個折半請求結果進行字符轉換和合并,從而獲得猜解后的數(shù)據(jù)庫/表/列/記錄信息。
3.一種基于云環(huán)境的SQL注入檢測方法,其特征在于,包括步驟: 51、云服務器接收客戶機并行發(fā)送的對N個數(shù)據(jù)庫/表/列/記錄信息的注入請求,并判斷注入請求的注入類型以及探測所述N個數(shù)據(jù)庫類型; 52、云服務器基于所述注入請求,依次向所述目標主機發(fā)送分別獲取對應數(shù)據(jù)庫/表/列記錄信息的N個請求; 53、云服務器依次接收所述目標主機每次并行返回的對應數(shù)據(jù)庫/表/列/記錄信息的N個請求結果; 54、云服務器將每次接收到的所述N個請求結果合并后發(fā)送給所述客戶機。
4.如權利要求3所述的一種基于云環(huán)境的SQL注入檢測方法,其特征在于,所述步驟S3和S4之間還包括步驟; . 531、云服務器對每一個所述請求結果的關于數(shù)據(jù)庫/表/列/記錄信息長度的M個字符,依次向所述目標主機并行發(fā)送猜解數(shù)據(jù)庫/表/列/記錄信息的M個折半請求; . 532、云服務器依次接收所述目標主機每次并行返回的對應猜解數(shù)據(jù)庫/表/列/記錄信息的M個折半請求結果; . 533、云服務器將每次接收到的M個折半請求結果進行字符轉換和合并,從而獲得猜解后的數(shù)據(jù)庫/表/列/記錄信息; 所述步驟S4具體為: 云服務器將每次猜解后的數(shù)據(jù)庫/表/列/記錄信息的N個請求結果合并后發(fā)送給所述客戶機。
【文檔編號】H04L29/06GK104394197SQ201410627614
【公開日】2015年3月4日 申請日期:2014年11月7日 優(yōu)先權日:2014年11月7日
【發(fā)明者】蒙家曉, 楊航, 陳華軍, 郭曉斌, 許愛東, 吳爭榮, 刑濤, 蔡淵 申請人:南方電網(wǎng)科學研究院有限責任公司, 海南電網(wǎng)公司