網(wǎng)絡應用安全測試工具及模糊測試用例生成方法和系統(tǒng)的制作方法
【專利摘要】本發(fā)明實施例提供一種網(wǎng)絡應用安全測試工具及模糊測試用例生成方法和系統(tǒng),其中,模糊測試用例生成方法包括:獲取超文本傳送協(xié)議HTTP請求數(shù)據(jù),確定模糊測試類型;根據(jù)模糊測試類型添加測試邏輯,執(zhí)行所述測試邏輯,生成模糊測試數(shù)據(jù);將HTTP請求數(shù)據(jù)中預定字段替換為所述模糊測試數(shù)據(jù),得到HTTP模糊測試用例,從而提高網(wǎng)絡應用安全測試工具的適用性和針對性。
【專利說明】網(wǎng)絡應用安全測試工具及模糊測試用例生成方法和系統(tǒng)
【技術(shù)領域】
[0001]本發(fā)明涉及安全測試領域,特別是涉及一種網(wǎng)絡應用安全測試工具及模糊測試用例生成方法和系統(tǒng)。
【背景技術(shù)】
[0002]近年來,互聯(lián)網(wǎng)安全攻擊事件屢發(fā)不止,其中,由于網(wǎng)絡應用站點薄弱的安全防護,導致網(wǎng)絡應用成為黑客攻擊的主要目標。黑客通過對在線應用程序植入惡意程序,在用戶執(zhí)行操作的過程中,盜取用戶的隱私數(shù)據(jù),造成用戶的損失。因此,必須加強對網(wǎng)絡應用的安全測試,降低其遭受攻擊以及威脅的可能性,保障通信安全。
[0003]模糊測試是一種廣泛使用的軟件測試技術(shù),通過模糊器自動化或半自動化的構(gòu)造大量非預期的模糊測試數(shù)據(jù)發(fā)送給目標測試應用,并監(jiān)測異常來發(fā)現(xiàn)可能存在的漏洞。由此,模糊測試因能監(jiān)測出軟件實現(xiàn)中被忽略的故障,而廣泛用于檢測軟件或計算機系統(tǒng)的安全漏洞?,F(xiàn)今,模糊測試方法已經(jīng)大量應用于網(wǎng)絡應用安全測試工具中。
[0004]目前,存在許多用于模糊測試和網(wǎng)絡應用安全測試的工具,一類是國內(nèi)信息安全廠商研發(fā)的商業(yè)安全監(jiān)測工具,另一類是國外安全團隊開發(fā)的較為成熟的安全測試工具,兩種測試工具均有其自己的特點,但是,兩類網(wǎng)絡應用安全測試工具均使用已經(jīng)編好的、完整的存于安全測試工具系統(tǒng)內(nèi)的模糊測試用例來對網(wǎng)絡安全進行測試,也就是說,這兩類安全測試工具中用于測試網(wǎng)絡應用安全的模糊測試用例已經(jīng)固定,不能靈活地在系統(tǒng)內(nèi)進行添加、刪除和修改模糊測試用例等操作,只可在對可用已存在于安全測試工具內(nèi)部的模糊測試用例進行網(wǎng)絡安全測試的情況時,才可對網(wǎng)絡安全進行正常、有效地測試,而對一些比較少見的或是特殊的網(wǎng)絡安全狀況無法很好地進行網(wǎng)絡安全測試,缺乏針對性和適用性。
【發(fā)明內(nèi)容】
[0005]有鑒于此,本發(fā)明實施例提供一種網(wǎng)絡應用安全測試工具及模糊測試用例生成方法和系統(tǒng),以解決現(xiàn)有技術(shù)中網(wǎng)絡應用安全測試工具即模糊測試缺乏針對性和適用性的問題。
[0006]為實現(xiàn)上述目的,本發(fā)明實施例提供如下技術(shù)方案:
[0007]—種模糊測試用例生成方法,用于網(wǎng)絡應用安全測試工具,包括:
[0008]獲取超文本傳送協(xié)議HTTP請求數(shù)據(jù),確定模糊測試類型;
[0009]根據(jù)模糊測試類型添加測試邏輯,執(zhí)行所述測試邏輯,生成模糊測試數(shù)據(jù);
[0010]將HTTP請求數(shù)據(jù)中預定字段替換為所述模糊測試數(shù)據(jù),得到HTTP模糊測試用例。
[0011]其中,通過模糊測試工具獲取HTTP請求數(shù)據(jù)或手動構(gòu)造HTTP請求數(shù)據(jù)。
[0012]其中,所述模糊測試類型包括:目錄遍歷、跨站腳本、結(jié)構(gòu)化查詢語言SQL注入、請求方法和字典攻擊。
[0013]其中,所述根據(jù)模糊測試類型添加邏輯,并執(zhí)行所述測試邏輯,生成模糊測試數(shù)據(jù)包括:
[0014]根據(jù)模糊測試類型添加測試策略,生成策略文件;
[0015]讀取所述策略文件,確定策略文件中偽碼的行數(shù),計算邏輯結(jié)構(gòu)關(guān)鍵詞在策略文件中的位置,確定所述策略文件的邏輯結(jié)構(gòu),并執(zhí)行所述邏輯結(jié)構(gòu);
[0016]得到所述策略文件每行的執(zhí)行返回值,生成模糊測試數(shù)據(jù)。
[0017]其中,所述根據(jù)模糊測試類型添加測試邏輯,并執(zhí)行所述測試邏輯,生成模糊測試數(shù)據(jù)包括:
[0018]根據(jù)模糊測試類型添加測試字典,生成字典文件;
[0019]確定字典文件的數(shù)目,
[0020]若字典文件數(shù)目大于1,則對所有字典文件進行笛卡爾積運行,得到笛卡爾積運算返回值,生成模糊測試數(shù)據(jù);
[0021]若字典文件數(shù)目為1,則直接返回該字典文件,生成模糊測試數(shù)據(jù)。
[0022]其中,所述獲取超文本傳送協(xié)議HTTP請求數(shù)據(jù)后還包括:檢查獲取的HTTP請求數(shù)據(jù)是否規(guī)范,
[0023]判斷獲取的HTTP請求數(shù)據(jù)是否規(guī)范包括:
[0024]判斷所述HTTP請求數(shù)據(jù)是否不為空;
[0025]判斷所述HTTP請求數(shù)據(jù)是否符合HTTP格式;
[0026]判斷所述HTTP請求數(shù)據(jù)是否添加了模糊測試;
[0027]若均是,則判定獲取的HTTP請求數(shù)據(jù)規(guī)范。
[0028]一種網(wǎng)絡應用安全測試工具,基于上述所述的模糊測試用例生成方法。
[0029]一種模糊測試用例生成系統(tǒng),包括:獲取模塊、數(shù)據(jù)生成模塊和用例生成模塊,其中,
[0030]所述獲取模塊,用于獲取超文本傳送協(xié)議HTTP請求數(shù)據(jù),確定模糊測試類型;
[0031]所述數(shù)據(jù)生成模塊,用于根據(jù)模糊測試類型添加測試邏輯,執(zhí)行所述測試邏輯,生成模糊測試數(shù)據(jù);
[0032]所述用例生成模塊,用于將HTTP請求數(shù)據(jù)中預定字段替換為所述模糊測試數(shù)據(jù),得到模糊測試用例。
[0033]其中,所述數(shù)據(jù)生成模塊包括:文件生成單元、文件執(zhí)行單元和數(shù)據(jù)生成單元,其中,
[0034]所述文件生成單元,用于根據(jù)模糊測試類型添加測試策略,生成策略文件;或根據(jù)模糊測試類型添加測試字典,生成字典文件;
[0035]所述執(zhí)行單元,用于讀取所述策略文件,確定策略文件中偽碼的行數(shù),計算邏輯結(jié)構(gòu)關(guān)鍵詞在策略文件中的位置,確定所述策略文件的邏輯結(jié)構(gòu),并執(zhí)行所述邏輯結(jié)構(gòu);或確定字典文件的數(shù)目,若字典文件數(shù)目大于I,對所有字典文件進行笛卡爾積運行,若字典文件數(shù)目為1,則直接返回該字典文件;
[0036]所述數(shù)據(jù)生成單元,用于得到所述策略文件每行的執(zhí)行返回值,生成模糊測試數(shù)據(jù);或得到笛卡爾積運算返回值,生成模糊測試數(shù)據(jù);或得到返回字典文件,生成模糊測試數(shù)據(jù)。
[0037]其中,所述模糊測試用例生成系統(tǒng)還包括:檢查模塊,用于檢查獲取的HTTP請求數(shù)據(jù)是否規(guī)范,
[0038]所述檢查模塊包括:第一判斷單元、第二判斷單元、第三判斷單元和判定單元,其中,
[0039]所述第一判斷單元,用于判斷所述HTTP請求數(shù)據(jù)是否不為空;
[0040]所述第二判斷單元,用于判斷所述HTTP請求數(shù)據(jù)是否符合HTTP格式;
[0041]所述第三判斷單元,永不判斷所述HTTP請求數(shù)據(jù)是否添加了模糊測試;
[0042]所述判定單元,當?shù)谝慌袛鄦卧?、第二判斷單元和第三判斷單元判斷結(jié)果均為是時,判定獲取的HTTP請求數(shù)據(jù)規(guī)范。
[0043]基于上述技術(shù)方案,本發(fā)明實施例提供的一種網(wǎng)絡應用安全測試工具及模糊測試用例生成方法和系統(tǒng),當遇到少見的或是特殊的網(wǎng)絡應用安全測試情況,無法使用網(wǎng)絡應用安全測試工具本身已存的模糊測試用例進行有效地網(wǎng)絡應用安全測試時,在獲取超文本傳送協(xié)議HTTP請求數(shù)據(jù),確定模糊測試類型后,根據(jù)模糊測試的類型添加測試邏輯,并執(zhí)行所述測試邏輯,生成模糊測試數(shù)據(jù),在生成模糊測試數(shù)據(jù)后將獲取的HTTP請求數(shù)據(jù)中預定字段替換為所述模糊測試數(shù)據(jù),生成原本不存在與該網(wǎng)絡應用安全測試工具系統(tǒng)中的模糊測試用例,得到適用于該少見的或是特殊的網(wǎng)絡應用安全測試情況的模糊測試用例,從而提高了網(wǎng)絡應用安全測試工具的適用性和針對性。
【專利附圖】
【附圖說明】
[0044]為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的實施例,對于本領域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。
[0045]圖1為本發(fā)明實施例提供的模糊測試用例生成方法的流程圖;
[0046]圖2為本發(fā)明實施例提供的模糊測試用例生成方法中生成模糊測試數(shù)據(jù)的方法流程圖;
[0047]圖3為本發(fā)明實施例提供的模糊測試用例生成方法中生成模糊測試數(shù)據(jù)的另一方法流程圖;
[0048]圖4為本發(fā)明實施例提供的模糊測試用例生成方法中判斷獲取的HTTP請求數(shù)據(jù)是否規(guī)范的方法流程圖;
[0049]圖5為本發(fā)明實施例提供的模糊測試用例生成系統(tǒng)的系統(tǒng)框圖;
[0050]圖6為本發(fā)明實施例提供的模糊測試用例生成系統(tǒng)中數(shù)據(jù)生成模塊的結(jié)構(gòu)框圖;
[0051]圖7為本發(fā)明實施例提供的模糊測試用例生成系統(tǒng)的另一系統(tǒng)框圖;
[0052]圖8為本發(fā)明實施例提供的模糊測試用例生成系統(tǒng)中檢查模塊的結(jié)構(gòu)框圖。
【具體實施方式】
[0053]下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
[0054]圖1為本發(fā)明實施例提供的模糊測試用例生成方法的流程圖,該模糊測試用例生成方法根據(jù)模糊測試類型添加測試邏輯,執(zhí)行所述測試邏輯,生成模糊測試數(shù)據(jù),將HTTP請求數(shù)據(jù)中預定字段替換為所述模糊測試數(shù)據(jù),使得到模糊測試用例可有效對需要測試的網(wǎng)絡應用進行安全測試,使網(wǎng)絡應用安全測試工具具有更高的適應性和針對性,參照圖1,所述模糊測試用例生成方法包括:
[0055]步驟SlOO:獲取超文本傳送協(xié)議HTTP請求數(shù)據(jù),確定模糊測試類型;
[0056]HTTP請求數(shù)據(jù),即HTTP請求中所包含的數(shù)據(jù),其中HTTP請求是指從客戶端發(fā)送到服務器端的請求消息,其包括:消息首行中、對資源的請求方法和資源的標識符及使用協(xié)議。
[0057]可選的,獲取的HTTP請求數(shù)據(jù)可以是通過模糊測試工具獲取的HTTP請求數(shù)據(jù),也可以是手動構(gòu)造HTTP請求數(shù)據(jù)。
[0058]可選的,模糊測試類型可以包括:目錄遍歷、跨站腳本、結(jié)構(gòu)化查詢語言SQL注入、請求方法和字典攻擊。
[0059]可選的,在獲取超文本傳送協(xié)議HTTP請求數(shù)據(jù)后還可以包括檢查獲取的HTTP請求數(shù)據(jù)是否規(guī)范,檢查獲取的HTTP請求數(shù)據(jù)是否規(guī)范需要判斷獲取的HTTP請求數(shù)據(jù)是否為空,判斷獲取的HTTP請求數(shù)據(jù)是否符合HTTP格式,并獲取的HTTP請求數(shù)據(jù)是否添加了模糊測試,若獲取的HTTP請求數(shù)據(jù)不為空、符合HTTP格式且添加了模糊測試,則認為獲取的HTTP請求數(shù)據(jù)規(guī)范。
[0060]步驟SllO:根據(jù)模糊測試類型添加測試邏輯,執(zhí)行所述測試邏輯,生成模糊測試數(shù)據(jù);
[0061]其中,添加測試邏輯,可以是從網(wǎng)絡上下載所需要的測試邏輯文件到網(wǎng)絡應用安全測試工具中,可以是將現(xiàn)存的測試邏輯進行語法轉(zhuǎn)換后輸出存入網(wǎng)絡應用安全測試工具中,還可以是自行編寫測試邏輯,然后將在網(wǎng)絡應用安全測試工具中運行該編寫的測試邏輯。
[0062]可選的,在選擇自行編寫測試邏輯后,可以使用偽碼系統(tǒng)來編寫所需要測試邏輯。偽碼系統(tǒng)支持一般的邏輯結(jié)構(gòu)關(guān)鍵詞,如if、else、for和where等,且支持一般的操作符、支持自定義變量和支持字符串contains、正則等方法;同時,偽碼系統(tǒng)預定義了一些常量,比如請求頭數(shù)據(jù)(request, headers),語法簡單。
[0063]在添加測試邏輯后,系統(tǒng)中將會生成測試邏輯文件,當模糊測試類型為目錄遍歷、跨站腳本、結(jié)構(gòu)化查詢語言SQL注入和請求方法中的一種時,添加測試邏輯生成的邏輯文件為.xml (可擴展標記語言)格式,當模糊測試類型為字典攻擊時,添加測試邏輯生成的邏輯文件為.txt (文本)格式。
[0064]當模糊測試類型為目錄遍歷、跨站腳本、結(jié)構(gòu)化查詢語言SQL注入和請求方法中的一種時添加的測試邏輯為策略,當模糊測試類型為字典攻擊時,添加的測試邏輯為字典。
[0065]可選的,每個字典中的每條數(shù)據(jù)以“ \t\n ”結(jié)尾。
[0066]可選的,當模糊測試類型為目錄遍歷、跨站腳本、結(jié)構(gòu)化查詢語言SQL注入和請求方法中的一種時,可以在添加策略,生成的.xml格式的策略文件后,讀取該生成的策略文件,在確定了該策略文件中偽碼的行數(shù)后,計算邏輯結(jié)構(gòu)關(guān)鍵詞在該策略文件中的位置,確定所述策略文件的邏輯結(jié)構(gòu),并執(zhí)行該邏輯結(jié)構(gòu),在執(zhí)行該邏輯結(jié)構(gòu)后,得到該策略文件每行的執(zhí)行返回值,該執(zhí)行返回值即為所需要生成的模糊測試數(shù)據(jù)。
[0067]可選的,可以通過獲取策略文件的根節(jié)點,通過查找策略文件中根節(jié)點中預定標記的方法,來獲取該預定標記結(jié)點集合,然后遍歷整個預定標記結(jié)點集合,累計預定標志的屬性標志不為空的節(jié)點,來得到策略文件中偽碼的行數(shù)。
[0068]可選的,該預定標志可以為“ RuleRow”。
[0069]可選的,可以通過遍歷整個預定標記結(jié)點集合,得到預定標記的屬性標志不為空的節(jié)點后,遍歷每個屬性標志不為空的預定標志的子節(jié)點,來獲取每個子節(jié)點的內(nèi)容結(jié)合,然后通過查找哈希表中的動態(tài)數(shù)據(jù)組來獲取策略文件中邏輯結(jié)構(gòu)關(guān)鍵詞在偽碼中的位置。
[0070]其中,邏輯結(jié)構(gòu)包含了某個或某幾個邏輯關(guān)鍵詞測試策略執(zhí)行過程中的執(zhí)行先后邏輯關(guān)系,如邏輯關(guān)鍵詞if和for,其兩者之間的邏輯結(jié)構(gòu)可以為for循環(huán)邏輯結(jié)構(gòu)中嵌套if判斷邏輯結(jié)構(gòu)、if判斷邏輯結(jié)構(gòu)中嵌套for循環(huán)邏輯結(jié)構(gòu)、單獨的for循環(huán)邏輯結(jié)構(gòu)和單獨的if判斷邏輯結(jié)構(gòu)。
[0071]可選的,在得到策略文件中邏輯結(jié)構(gòu)關(guān)鍵詞在該策略文件中的位置后,可以通過存儲各個節(jié)點經(jīng)過xml文件解析器解析后的文本值來確定策略文件中各個邏輯結(jié)構(gòu)關(guān)鍵詞的邏輯結(jié)構(gòu)。
[0072]其中,xml文件解析器中定義了對各個節(jié)點值的計算以及常量和變量的值,其中常量的值為最小單元。例如if節(jié)點下有equals節(jié)點,而equals節(jié)點下又有常量節(jié)點,若要計算if節(jié)點的文本值,那么調(diào)用xml文件解析器后,xml文件解析器內(nèi)函數(shù)將會以遞歸的方式實現(xiàn)計算,首先找到if節(jié)點,再找到equals節(jié)點,再找到常量節(jié)點,然后得到常量節(jié)點的文本值后上拋,接著計算得到equals節(jié)點的文本值,最后計算得到if節(jié)點的文本值。
[0073]可選的,當模糊測試類型為字典攻擊時,可以在添加字典,生成的.txt格式的字典文件后,確定系統(tǒng)中字典文件的數(shù)目,若字典文件的數(shù)目大于1,則對所有字典文件進行笛卡爾積運行,來得到笛卡爾積運算返回值,生成模糊測試數(shù)據(jù);若字典文件數(shù)目為1,則直接返回該字典文件,生成模糊測試數(shù)據(jù),即將該字典文件作為模糊測試數(shù)據(jù)。
[0074]可選的,在對字典文件中字典數(shù)據(jù)進行笛卡爾積運算,生成模糊測試數(shù)據(jù)后,還可以確定生成的模糊測試數(shù)據(jù)的總條數(shù)。
[0075]步驟S120:將HTTP請求數(shù)據(jù)中預定字段替換為所述模糊測試數(shù)據(jù),得到HTTP模糊測試用例。
[0076]基于上述技術(shù)方案,本發(fā)明實施例提供的一種網(wǎng)絡應用安全測試工具及模糊測試用例生成方法和系統(tǒng),當遇到少見的或是特殊的網(wǎng)絡應用安全測試情況,無法使用網(wǎng)絡應用安全測試工具本身已存的模糊測試用例進行有效地網(wǎng)絡應用安全測試時,在獲取超文本傳送協(xié)議HTTP請求數(shù)據(jù),確定模糊測試類型后,根據(jù)模糊測試的類型添加測試邏輯,并執(zhí)行所述測試邏輯,生成模糊測試數(shù)據(jù),在生成模糊測試數(shù)據(jù)后將獲取的HTTP請求數(shù)據(jù)中預定字段替換為所述模糊測試數(shù)據(jù),生成原本不存在與該網(wǎng)絡應用安全測試工具系統(tǒng)中的模糊測試用例,得到適用于該少見的或是特殊的網(wǎng)絡應用安全測試情況的模糊測試用例,從而提高了網(wǎng)絡應用安全測試工具的適用性和針對性。
[0077]可選的,圖2示出了本發(fā)明實施例提供的模糊測試用例生成方法中生成模糊測試數(shù)據(jù)的方法流程圖,參照圖2,該生成模糊測試數(shù)據(jù)的方法可以包括:
[0078]步驟S200:根據(jù)模糊測試類型添加測試策略,生成策略文件;
[0079]當模糊測試類型為目錄遍歷、跨站腳本、結(jié)構(gòu)化查詢語言SQL注入和請求方法中的一種時,根據(jù)模糊測試類型添加測試策略,生成策略文件,生成的策略文件為.xml格式文件。
[0080]其中,所添加的策略為需測試的網(wǎng)絡應用相適用的策略,通過該策略而生成的模糊檢測用例可以有效對需測試的網(wǎng)絡應用進行有效地安全測試。
[0081]步驟S210:讀取所述策略文件,確定策略文件中偽碼的行數(shù),計算邏輯結(jié)構(gòu)關(guān)鍵詞在策略文件中的位置,確定所述策略文件的邏輯結(jié)構(gòu),并執(zhí)行所述邏輯結(jié)構(gòu);
[0082]可選的,可以通過獲取策略文件的根節(jié)點,通過查找策略文件中根節(jié)點中預定標記的方法,來獲取該預定標記結(jié)點集合,然后遍歷整個預定標記結(jié)點集合,累計預定標志的屬性標志不為空的節(jié)點,來得到策略文件中偽碼的行數(shù)。可選的,該預定標志可以為“ RuleRow”。
[0083]可選的,可以通過遍歷整個預定標記結(jié)點集合,得到預定標記的屬性標志不為空的節(jié)點后,遍歷每個屬性標志不為空的預定標志的子節(jié)點,來獲取每個子節(jié)點的內(nèi)容結(jié)合,然后通過查找哈希表中的動態(tài)數(shù)據(jù)組來獲取策略文件中邏輯結(jié)構(gòu)關(guān)鍵詞在偽碼中的位置。
[0084]可選的,在得到策略文件中邏輯結(jié)構(gòu)關(guān)鍵詞在該策略文件中的位置后,可以通過存儲各個節(jié)點經(jīng)過xml文件解析器解析后的文本值來確定策略文件中各個邏輯結(jié)構(gòu)關(guān)鍵詞的邏輯結(jié)構(gòu)。
[0085]步驟S220:得到所述策略文件的執(zhí)行返回值,生成模糊測試數(shù)據(jù)。
[0086]可選的,圖3示出了本發(fā)明實施例提供的模糊測試用例生成方法中生成模糊測試數(shù)據(jù)的另一方法流程圖,參照圖3,該生成模糊測試數(shù)據(jù)的另一方法可以包括:
[0087]步驟S300:根據(jù)模糊測試類型添加測試字典,生成字典文件;
[0088]當模糊測試類型為字典攻擊時,根據(jù)模糊測試類型添加測試字典,生成字典文件,生成的策略文件為.txt格式文件。
[0089]其中,所添加的字典為需測試的網(wǎng)絡應用相適用的字典,通過該字典而生成的模糊檢測用例可以有效對需測試的網(wǎng)絡應用進行有效地安全測試。
[0090]可選的,添加的字典中的每條數(shù)據(jù)以“ \t\n ”結(jié)尾
[0091]步驟S310:判斷字典文件的數(shù)目;
[0092]步驟S320:若字典文件數(shù)目大于1,則對所有字典文件進行笛卡爾積運行,得到笛卡爾積運算返回值,生成模糊測試數(shù)據(jù);
[0093]步驟S330:若字典文件數(shù)目為1,則直接返回該字典文件,生成模糊測試數(shù)據(jù)。
[0094]可選的,在對字典文件中字典數(shù)據(jù)進行笛卡爾積運算,生成模糊測試數(shù)據(jù)后,還可以確定生成的模糊測試數(shù)據(jù)的總條數(shù)。
[0095]可選的,圖4示出了本發(fā)明實施例提供的模糊測試用例生成方法中判斷獲取的HTTP請求數(shù)據(jù)是否規(guī)范的方法流程圖,參照圖4,該判斷獲取的HTTP請求數(shù)據(jù)是否規(guī)范的方法可以包括:
[0096]步驟S400:判斷所述HTTP請求數(shù)據(jù)是否不為空;
[0097]若獲取的HTTP請求數(shù)據(jù)為空,即獲取的HTTP請求數(shù)據(jù)沒有實質(zhì)內(nèi)容,則可以直接判定獲取的HTTP請求數(shù)據(jù)無效,不符合規(guī)范;若獲取的HTTP請求數(shù)據(jù)不為空,則獲取的HTTP請求數(shù)據(jù)有實質(zhì)內(nèi)容,獲取的HTTP請求數(shù)據(jù)可能符合規(guī)范。
[0098]步驟S410:判斷所述HTTP請求數(shù)據(jù)是否符合HTTP格式;
[0099]若獲取的HTTP請求數(shù)據(jù)不符合HTTP格式,則可以判定獲取的HTTP請求數(shù)據(jù)不符合規(guī)范;若獲取的HTTP請求數(shù)據(jù)符合HTTP格式,則獲取的HTTP請求數(shù)據(jù)可能符合規(guī)范。
[0100]步驟S420:判斷所述HTTP請求數(shù)據(jù)是否添加了模糊測試;
[0101]若獲取的HTTP請求數(shù)據(jù)沒有添加模糊測試,則獲取的HTTP請求數(shù)據(jù)將無法完成替換,生成模糊測試用例,可以判定獲取的HTTP請求數(shù)據(jù)不符合規(guī)范;若獲取的HTTP請求數(shù)據(jù)添加了模糊測試,則獲取的HTTP請求數(shù)據(jù)可能符合規(guī)范。
[0102]步驟S430:若均是,則判定獲取的HTTP請求數(shù)據(jù)規(guī)范。
[0103]當步驟S400、步驟S410和步驟S420中均判斷為是,即獲取的HTTP請求數(shù)據(jù)不為空、符合HTTP格式且添加了模糊測試,則可判定獲取的HTTP請求數(shù)據(jù)規(guī)范。除了此種情況夕卜,其他的所有情況,均判定獲取的HTTP請求數(shù)據(jù)不規(guī)范。
[0104]本發(fā)明實施例提供的模糊測試用例生成方法,當遇到少見的或是特殊的網(wǎng)絡應用安全測試情況,通過添加測試邏輯,并執(zhí)行所述測試邏輯,最后生成適用于該少見的或是特殊的網(wǎng)絡應用安全測試情況的模糊測試用例,從而提高了網(wǎng)絡應用安全測試工具的適用性和針對性。
[0105]本發(fā)明還提供一種網(wǎng)絡應用安全測試工具,該網(wǎng)絡應用安全測試工具可以包括上述所述的模糊測試用例生成方法。
[0106]下面對本發(fā)明實施例提供的模糊測試用例生成系統(tǒng)進行介紹,下文描述的模糊測試用例生成系統(tǒng)與上文描述的模糊測試用例生成方法可相互對應參照。
[0107]圖5為本發(fā)明實施例提供的模糊測試用例生成系統(tǒng)的系統(tǒng)框圖,參照圖5,該模糊測試用例生成系統(tǒng)可以包括:獲取模塊100、數(shù)據(jù)生成模塊200和用例生成模塊300,其中,
[0108]獲取模塊100,用于獲取超文本傳送協(xié)議HTTP請求數(shù)據(jù),確定模糊測試類型;
[0109]數(shù)據(jù)生成模塊200,用于根據(jù)模糊測試類型添加測試邏輯,執(zhí)行所述測試邏輯,生成模糊測試數(shù)據(jù);
[0110]用例生成模塊300,用于將HTTP請求數(shù)據(jù)中預定字段替換為所述模糊測試數(shù)據(jù),得到模糊測試用例。
[0111]可選的,圖6示出了本發(fā)明實施例提供的模糊測試用例生成系統(tǒng)中數(shù)據(jù)生成模塊200的結(jié)構(gòu)框圖,參照圖6,該數(shù)據(jù)生成模塊200可以包括:文件生成單元210、執(zhí)行單元220和數(shù)據(jù)生成單元230,其中,
[0112]文件生成單元210,用于根據(jù)模糊測試類型添加測試策略,生成策略文件;或根據(jù)模糊測試類型添加測試字典,生成字典文件;
[0113]執(zhí)行單元220,用于讀取所述策略文件,確定策略文件中偽碼的行數(shù),計算邏輯結(jié)構(gòu)關(guān)鍵詞在策略文件中的位置,確定所述策略文件的邏輯結(jié)構(gòu),并執(zhí)行所述邏輯結(jié)構(gòu);或確定字典文件的數(shù)目,若字典文件數(shù)目大于I,對所有字典文件進行笛卡爾積運行,若字典文件數(shù)目為1,則直接返回該字典文件;
[0114]數(shù)據(jù)生成單元230,用于得到所述策略文件每行的執(zhí)行返回值,生成模糊測試數(shù)據(jù);或得到笛卡爾積運算返回值,生成模糊測試數(shù)據(jù);或得到返回字典文件,生成模糊測試數(shù)據(jù)。
[0115]可選的,圖7示出了本發(fā)明實施例提供的模糊測試用例生成系統(tǒng)的另一系統(tǒng)框圖,參照圖7,該模糊測試用例生成系統(tǒng)還可以包括:檢查模塊400,
[0116]檢查模塊400,用于檢查獲取的HTTP請求數(shù)據(jù)是否規(guī)范。
[0117]可選的,圖8示出了本發(fā)明實施例提供的模糊測試用例生成系統(tǒng)中檢查模塊400的結(jié)構(gòu)框圖,參照圖8,該檢查模塊400可以包括:第一判斷單元410、第二判斷單元420、第三判斷單元430和判定單元440,其中,
[0118]第一判斷單元410,用于判斷所述HTTP請求數(shù)據(jù)是否不為空;
[0119]第二判斷單元420,用于判斷所述HTTP請求數(shù)據(jù)是否符合HTTP格式;
[0120]第三判斷單元430,永不判斷所述HTTP請求數(shù)據(jù)是否添加了模糊測試;
[0121]判定單元440,當?shù)谝慌袛鄦卧⒌诙袛鄦卧偷谌袛鄦卧袛嘟Y(jié)果均為是時,判定獲取的HTTP請求數(shù)據(jù)規(guī)范。
[0122]本發(fā)明實施例提供的模糊測試用例生成系統(tǒng),當遇到少見的或是特殊的網(wǎng)絡應用安全測試情況,通過添加測試邏輯,并執(zhí)行所述測試邏輯,最后生成適用于該少見的或是特殊的網(wǎng)絡應用安全測試情況的模糊測試用例,從而提高了網(wǎng)絡應用安全測試工具的適用性和針對性。
[0123]本說明書中各個實施例采用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似部分互相參見即可。對于實施例公開的裝置而言,由于其與實施例公開的方法相對應,所以描述的比較簡單,相關(guān)之處參見方法部分說明即可。
[0124]對所公開的實施例的上述說明,使本領域?qū)I(yè)技術(shù)人員能夠?qū)崿F(xiàn)或使用本發(fā)明。對這些實施例的多種修改對本領域的專業(yè)技術(shù)人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發(fā)明的精神或范圍的情況下,在其它實施例中實現(xiàn)。因此,本發(fā)明將不會被限制于本文所示的這些實施例,而是要符合與本文所公開的原理和新穎特點相一致的最寬的范圍。
【權(quán)利要求】
1.一種模糊測試用例生成方法,用于網(wǎng)絡應用安全測試工具,其特征在于,包括: 獲取超文本傳送協(xié)議HTTP請求數(shù)據(jù),確定模糊測試類型; 根據(jù)模糊測試類型添加測試邏輯,執(zhí)行所述測試邏輯,生成模糊測試數(shù)據(jù); 將HTTP請求數(shù)據(jù)中預定字段替換為所述模糊測試數(shù)據(jù),得到HTTP模糊測試用例。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,通過模糊測試工具獲取HTTP請求數(shù)據(jù)或手動構(gòu)造HTTP請求數(shù)據(jù)。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述模糊測試類型包括:目錄遍歷、跨站腳本、結(jié)構(gòu)化查詢語言SQL注入、請求方法和字典攻擊。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)模糊測試類型添加邏輯,并執(zhí)行所述測試邏輯,生成模糊測試數(shù)據(jù)包括: 根據(jù)模糊測試類型添加測試策略,生成策略文件; 讀取所述策略文件,確定策略文件中偽碼的行數(shù),計算邏輯結(jié)構(gòu)關(guān)鍵詞在策略文件中的位置,確定所述策略文件的邏輯結(jié)構(gòu),并執(zhí)行所述邏輯結(jié)構(gòu); 得到所述策略文件的執(zhí)行返回值,生成模糊測試數(shù)據(jù)。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)模糊測試類型添加測試邏輯,并執(zhí)行所述測試邏輯,生成模糊測試數(shù)據(jù)包括: 根據(jù)模糊測試類型添加測試字典,生成字典文件; 確定字典文件的數(shù)目, 若字典文件數(shù)目大于1,則對所有字典文件進行笛卡爾積運行,得到笛卡爾積運算返回值,生成模糊測試數(shù)據(jù); 若字典文件數(shù)目為I,則直接返回該字典文件,生成模糊測試數(shù)據(jù)。
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述獲取超文本傳送協(xié)議HTTP請求數(shù)據(jù)后還包括:檢查獲取的HTTP請求數(shù)據(jù)是否規(guī)范, 判斷獲取的HTTP請求數(shù)據(jù)是否規(guī)范包括: 判斷所述HTTP請求數(shù)據(jù)是否不為空; 判斷所述HTTP請求數(shù)據(jù)是否符合HTTP格式; 判斷所述HTTP請求數(shù)據(jù)是否添加了模糊測試; 若均是,則判定獲取的HTTP請求數(shù)據(jù)規(guī)范。
7.—種網(wǎng)絡應用安全測試工具,其特征在于,基于權(quán)利要求1至6中任一項所述的模糊測試用例生成方法。
8.一種模糊測試用例生成系統(tǒng),其特征在于,包括:獲取模塊、數(shù)據(jù)生成模塊和用例生成模塊,其中, 所述獲取模塊,用于獲取超文本傳送協(xié)議HTTP請求數(shù)據(jù),確定模糊測試類型; 所述數(shù)據(jù)生成模塊,用于根據(jù)模糊測試類型添加測試邏輯,執(zhí)行所述測試邏輯,生成模糊測試數(shù)據(jù); 所述用例生成模塊,用于將HTTP請求數(shù)據(jù)中預定字段替換為所述模糊測試數(shù)據(jù),得到模糊測試用例。
9.根據(jù)權(quán)利要求8所述的模糊測試用例生成系統(tǒng),其特征在于,所述數(shù)據(jù)生成模塊包括:文件生成單元、文件執(zhí)行單元和數(shù)據(jù)生成單元,其中, 所述文件生成單元,用于根據(jù)模糊測試類型添加測試策略,生成策略文件;或根據(jù)模糊測試類型添加測試字典,生成字典文件; 所述執(zhí)行單元,用于讀取所述策略文件,確定策略文件中偽碼的行數(shù),計算邏輯結(jié)構(gòu)關(guān)鍵詞在策略文件中的位置,確定所述策略文件的邏輯結(jié)構(gòu),并執(zhí)行所述邏輯結(jié)構(gòu);或確定字典文件的數(shù)目,若字典文件數(shù)目大于I,則對所有字典文件進行笛卡爾積運行,若字典文件數(shù)目為1,則直接返回該字典文件; 所述數(shù)據(jù)生成單元,用于得到所述策略文件每行的執(zhí)行返回值,生成模糊測試數(shù)據(jù);或得到笛卡爾積運算返回值,生成模糊測試數(shù)據(jù);或得到返回字典文件,生成模糊測試數(shù)據(jù)。
10.根據(jù)權(quán)利要求8所述的模糊測試用例生成系統(tǒng),其特征在于,還包括:檢查模塊,用于檢查獲取的HTTP請求數(shù)據(jù)是否規(guī)范, 所述檢查模塊包括:第一判斷單元、第二判斷單元、第三判斷單元和判定單元,其中, 所述第一判斷單元,用于判斷所述HTTP請求數(shù)據(jù)是否不為空; 所述第二判斷單元,用于判斷所述HTTP請求數(shù)據(jù)是否符合HTTP格式; 所述第三判斷單元,永不判斷所述HTTP請求數(shù)據(jù)是否添加了模糊測試; 所述判定單元,當?shù)谝慌袛鄦卧?、第二判斷單元和第三判斷單元判斷結(jié)果均為是時,判定獲取的HTTP請求數(shù)據(jù)規(guī)范。
【文檔編號】H04L29/06GK104320312SQ201410671017
【公開日】2015年1月28日 申請日期:2014年11月20日 優(yōu)先權(quán)日:2014年11月20日
【發(fā)明者】孫歆, 李景, 陳華智, 韓嘉佳, 盧新岱, 周輝, 王紅凱, 姚一楊, 夏瑩杰, 朱彬楓 申請人:國家電網(wǎng)公司, 國網(wǎng)浙江省電力公司電力科學研究院