本文作者:kaifamei

模糊測試方法及相關設備

更新時間:2025-12-27 01:32:48 0條評論

模糊測試方法及相關設備



1.本技術涉及物聯網安全技術領域,尤其涉及一種模糊測試方法及相關設備。


背景技術:

2.模糊測試是一種提供非預期的輸入并監視異常結果來發現物聯網設備的固件中漏洞的方法。相關技術中,一般選擇真實設備作為模糊測試的對象,由于使用真實設備無法添加高效精確的輸出監控手段,會影響模糊測試的結果準確性。此外,對于相關技術的基于固件仿真技術的模糊測試方法,測試用例不滿足消息依賴,且沒有考慮種子變異策略,檢測漏洞的能力較弱。


技術實現要素:

3.有鑒于此,本技術的目的在于提出一種模糊測試方法及相關設備,以解決或部分解決上述問題。
4.本技術第一方面,提供了一種模糊測試方法,包括:根據預先仿真得到的固件,獲取原始報文;響應于確定所述原始報文的數量大于一個,根據所述原始報文之間的依賴關系生成關聯報文序列;其中,所述依賴關系表征所述原始報文被預先搭建的網頁服務器處理的順序;確定所述原始報文中的目標原始報文,將所述目標原始報文解析為預先設計的結構體,并選擇所述結構體的任意一個節點進行變異;對變異后的所述結構體進行序列化得到更新的目標原始報文以及更新的關聯報文序列;將所述更新的關聯報文序列發送至所述網頁服務器,以進行模糊測試。
5.本技術第二方面,提供了一種模糊測試裝置,包括:獲取模塊,被配置為:根據預先仿真得到的固件,獲取原始報文;生成模塊,被配置為:響應于確定所述原始報文的數量大于一個,根據所述原始報文之間的依賴關系生成關聯報文序列;其中,所述依賴關系表征所述原始報文被預先搭建的網頁服務器處理的順序;變異模塊,被配置為:確定所述原始報文中的目標原始報文,將所述目標原始報文解析為預先設計的結構體,并選擇所述結構體的任意一個節點進行變異;更新模塊,被配置為:對變異后的所述結構體進行序列化得到更新的目標原始報文以及更新的關聯報文序列;發送模塊,被配置為:將所述更新的關聯報文序列發送至所述網頁服務器,以進行模糊測試。
6.本技術第三方面,提供了一種電子設備,包括存儲器、處理器及存儲在所述存儲器上并可由所述處理器執行的計算機程序,其特征在于,所述處理器執行所述計算機程序時
實現如第一方面所述的方法。
7.本技術第四方面,提供了一種非暫態計算機可讀存儲介質,所述非暫態計算機可讀存儲介質存儲計算機指令,其特征在于,所述計算機指令用于使計算機執行如第一方面所述的方法。
8.從上面所述可以看出,本技術提供的模糊測試方法及相關設備,基于固件仿真技術,成本低、適用范圍廣,并且可以實現精確的輸出監控,避免了真實設備重啟造成的開銷;將滿足依賴關系的關聯報文序列進行變異并發送給服務器以獲取反饋結果,保證了變異的畸形度,且解決了測試用例不滿足消息依賴和變異后報文的結構合法性低的問題,從而提高模糊測試的效率和漏洞挖掘能力。
附圖說明
9.為了更清楚地說明本技術或相關技術中的技術方案,下面將對實施例或相關技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本技術的實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
10.圖1為本技術實施例的模糊測試方法的流程示意圖;圖2為本技術實施例的原始報文格式的示意圖;圖3為本技術實施例的示例性的關聯報文序列的組成方式的示意圖;圖4為本技術實施例的模糊測試裝置的結構示意圖;圖5為本技術實施例的電子設備的結構示意圖。
具體實施方式
11.為使本技術的目的、技術方案和優點更加清楚明白,以下結合附圖對本技術的實施例進行詳細說明。
12.需要說明的是,除非另外定義,本技術實施例使用的技術術語或者科學術語應當為本技術所屬領域內具有一般技能的人士所理解的通常意義。本技術實施例中使用的“第一”、“第二”以及類似的詞語并不表示任何順序、數量或者重要性,而只是用來區分不同的組成部分?!鞍ā被蛘摺鞍钡阮愃频脑~語意指出現該詞前面的元件或者物件涵蓋出現在該詞后面列舉的元件或者物件及其等同,而不排除其他元件或者物件。“連接”或者“相連”等類似的詞語并非限定于物理的或者機械的連接,而是可以包括電性的連接,不管是直接的還是間接的。“上”、“下”、“左”、“右”等僅用于表示相對位置關系,當被描述對象的絕對位置改變后,則該相對位置關系也可能相應地改變。
13.隨著物聯網時代的來臨,物聯網設備得以迅速發展和廣泛應用。同時,針對物聯網設備的安全攻擊事件也在不斷攀升。物聯網設備存在的大量未知漏洞,不僅為設備自身,也為網絡空間帶來了很多潛在的威脅。并且,物聯網設備大部分漏洞都存在于設備固件中。
14.模糊測試是一種提供非預期的輸入并監視異常結果來發現物聯網設備的固件中漏洞的方法。相關技術中,一般選擇真實設備作為模糊測試的對象,由于使用真實設備無法添加高效精確的輸出監控手段,會影響模糊測試的結果準確性。并且設備的啟動和重啟會造成很大的開銷,導致模糊測試吞吐量低,最終影響模糊測試的效率。另外,物聯網設備種
類繁多,部分設備價格昂貴,導致成本較高。
15.此外,對于相關技術的基于固件仿真技術的模糊測試方法,測試用例不滿足消息依賴,且沒有考慮種子變異策略,檢測漏洞的能力較弱。
16.鑒于此,本技術實施例提供了一種模糊測試方法及相關設備。基于固件仿真技術,成本低、適用范圍廣,并且可以實現精確的輸出監控,避免了真實設備重啟造成的開銷;將滿足依賴關系的關聯報文序列進行變異并發送給服務器以獲取反饋結果,保證了變異的畸形度,且解決了測試用例不滿足消息依賴和變異后報文的結構合法性低的問題,從而提高模糊測試的效率和漏洞挖掘能力。
17.圖1示出了本技術實施例的模糊測試方法100的流程示意圖。如圖1所示,該方法100可以包括以下步驟。
18.步驟s101、根據預先仿真得到的固件,獲取原始報文。
19.本實施例中,實現固件的自動化仿真,以在固件仿真的基礎上進行模糊測試;根據所述固件,得到模擬設備。例如,根據仿真得到的固件,模擬出一個智能手表。這樣,固件的成功仿真為模糊測試得以進行提供前提條件,從而避免以真實設備作為模糊測試的對象而影響模糊測試的結果準確性和效率。
20.具體實施時,固件仿真過程包括固件解壓縮和固件仿真執行。固件仿真執行包括架構識別、nvram模擬以及兩階段仿真執行。
21.本實施例中,控制所述模擬設備和預先搭建的網頁服務器進行網絡交互,以生成請求報文和響應報文;根據所述請求報文的統一資源定位符,選取符合預先設定的規則的所述請求報文作為所述原始報文。具體的,由于模擬設備具有web頁面,在瀏覽器上可以設置和訪問。這樣,通過爬蟲技術操作瀏覽器和模擬設備,控制瀏覽器和模擬設備交互,就會生成請求和響應,就可以捕獲原始報文。
22.具體實施時,為獲取原始報文首先要完成固件的web(world wide web,全球廣域網)界面初始化工作。當固件仿真成功后,發現并啟動其web服務,若可以在瀏覽器正常訪問固件的web界面,則初始化工作完成。
23.具體實施時,向爬蟲程序提供固件web接口的主頁登錄地址以及用戶名和密碼,爬蟲程序識別輸入框填充用戶名和密碼并點擊登錄按鈕。
24.可以理解,對于一條請求報文,可以是不會發送任何請求的靜態資源,也可以是會發送多個請求的復雜頁面,因此需要預先設定一定的規則,并通過這些規則過濾掉無用的請求報文。例如,查看一張無關緊要的圖片,不涉及安全問題,對漏洞挖掘沒有作用。由于,對于一條請求報文,其統一資源定位符(uniform resource locator,url)是其較直觀的內容,可以通過url與其他請求報文進行區分,則用于過濾掉無用的請求報文的規則可以設定為:請求靜態資源的請求報文以及域名不是被測固件web接口ip(internet protocol,網絡層協議)地址的url(請求報文)。
25.這樣,url將各web界面連接起來,爬蟲程序先從固件web主頁面提取新的url,然后遞歸爬取這些新url來獲得更多界面,并且,并非所有的url都需要遞歸遍歷,只涉及沒有被上述規則過濾掉的請求報文。
26.具體實施時,對于每一個url,首先分析其html(hyper text markup language,超文本標記語言)代碼,識別其中的輸入框和按鈕元素,然后根據輸入框的屬性為其賦值,最
后選擇一個按鈕元素點擊觸發提交事件促使前端代碼或javascript代碼得到報文。需要說明的是,每個html頁面可能會有很多按鈕元素,需要把每個元素都遍歷一遍以防止漏掉一些元素,從而防止發送到服務器的報文中可能缺少某個字段,而導致可能無法觸發想要的效果(例如,崩潰)。因此,對于每一個url,維護一個字典,記錄每個元素的信息遍歷所有按鈕元素重復上述步驟以得到全面的報文。
27.具體實施時,在本地搭建代理服務器,然后配置瀏覽器代理使其網絡訪問都經過本地代理,通過代理捕獲每次點擊操作后web接口的網絡交互,然后把每次操作后所捕獲的報文打上時間戳并按照時間順序進行存儲??梢岳斫?,需要設定一定的規則對報文進行過濾:排除url的域名不是被測固件web接口ip地址的報文;排除請求靜態資源的報文;排除url地址重復的報文。這樣,通過上述規則對報文進行過濾,只收集可能存在依賴關系的請求報文作為原始報文。
28.需要說明的是,本實施例中的原始報文基于http/1.1協議。圖2示出了本技術實施例的原始報文格式。如圖2所示,原始報文包括請求行、請求頭、請求空行和請求體??梢岳斫猓瑘D2中的深部分是需要嚴格遵守的http協議規范,例如,請求行中請求方法、url和協議版本必須用空格分割,請求頭后必須有請求空行,請求體中的數據必須是的形式且以 amp;分割,請求頭的字段名稱和字段值之間必須用冒號分割等;圖2中的白部分是報文的數據部分,例如,請求頭和請求體中的鍵值對、http請求方法、http協議版本等。
29.步驟s102、響應于確定所述原始報文的數量大于一個,根據所述原始報文之間的依賴關系生成關聯報文序列;其中,所述依賴關系表征所述原始報文被預先搭建的網頁服務器處理的順序。
30.本實施例中,響應于確定所述原始報文的數量大于一個,確定所述原始報文之間的依賴關系;根據所述依賴關系確定所述原始報文的存儲順序;將所述原始報文按照所述存儲順序進行存儲而生成所述關聯報文序列。
31.具體實施時,對依賴關系的分析對象是上述獲取的原始報文(即,所捕獲的兩個操作間的請求報文,故分析的粒度是操作級)??梢岳斫猓魞蓚€操作間僅包含一條原始報文,則將該原始報文標記為單步報文,則只需要提取報文內部依賴;若兩個操作間包含多條原始報文,則需要分析這些原始報文之間的外部依賴和內部依賴。具體的,報文內部依賴來自于報文內部字段類型、字段長度等約束條件,報文外部依賴主要包括身份驗證依賴、狀態驅動依賴和參數傳遞依賴。
32.進一步的,報文內部依賴主要來自于前端對輸入數據的校驗,在原始報文的獲取階段,通過分析每個url對應的前端html代碼維護了一個字典庫,字典庫記錄了各html元素的信息,通過這些信息可以提取出報文內部依賴。
33.需要說明的是,單步報文不依賴于網頁服務器狀態或其他報文,每個單步報文都可以獨立執行,并且可以得到網頁服務器正確的響應;多步報文由多條具有依賴關系的報文組成,只有滿足依賴關系并且按照正確的順序發送多步報文至網頁服務器,才可以得到網頁服務器正確的響應。一般的,多步報文由auth授權報文、trans過渡報文、act執行報文構成。
34.其中,auth授權報文可以使網頁服務器進入授權狀態,以便網頁服務器可以接收
后續報文??梢岳斫猓鲇诎踩紤],需要進行登錄狀態校驗:當auth授權報文到達網頁服務器時,判斷當前是否處于已登錄狀態,如果當前用戶未登錄,則直接返回響應讓用戶登錄而不會做其他后續處理。
35.trans過渡報文可以驅使網頁服務器進入就緒狀態,以使網頁服務器在接收到后續報文時可以正確完成業務邏輯的處理并返回響應給前端。具體的,trans過渡報文包括狀態驅動報文和參數請求報文:狀態驅動報文可以驅使網頁服務器進入就緒狀態,以使后續報文可以得到正確處理;參數請求報文可以獲取網頁服務器的參數值,以使后續報文可以攜帶該參數值,從而通過網頁服務器對參數字段進行的安全校驗,從而完成業務邏輯的處理。
36.act執行報文可以被網頁服務器正確處理以得到預期響應。
37.在一些實施例中,在訪問固件web界面時首先會進入登錄頁面,到第一個表單填充操作作為登錄操作,并將其觸發的請求報文標記為auth授權報文,以滿足身份驗證依賴。可以理解,由于大多數漏洞需要在用戶登錄狀態下發送攻擊報文才能觸發,因此必須保持用戶登錄狀態,這就意味著身份驗證依賴。
38.在一些實施例中,由于網頁服務器的狀態是由請求驅動的,可以對捕獲到的報文打上時間戳,通過控制報文到達網頁服務器的先后順序來滿足狀態驅動依賴。這樣,通過請求的時間順序一定程度上可以反映報文狀態驅動依賴。
39.在一些實施例中,根據兩個操作間所獲取的原始報文的數量,確定原始報文是否為act執行報文以對原始報文進行標記。當兩個操作間只有一條原始報文,直接將該原始報文標記為act執行報文;當兩個操作間具有多條原始報文,解析這些原始報文之間的參數傳遞依賴。
40.具體實施時,可以將兩個操作間的多個請求的集合記為,其對應的響應集記為,對于任意的請求,存在唯一的響應與之對應。可以理解,本實施例中的請求即為上述所獲取的原始報文。進一步的,對于每個,從的url和請求體中提取所有參數字段k(key),得到k的集合;對于每個,遍歷集合k從的響應體中匹配。如果的響應體中包含,表示匹配成功,則將對應的標記為trans過渡報文,到包含的請求并將其標記為act執行報文。這樣,則是網頁服務器校驗的參數字段,trans過渡報文從網頁服務器獲得參數的值并將其傳遞給act執行報文,act執行報文攜帶到達網頁服務器即可通過參數校驗完成后續的業務邏輯。
41.這樣,通過匹配參數字段來識別參數傳遞依賴關系,從而根據參數傳遞依賴關系確定原始報文中的trans過渡報文和act執行報文,從而生成滿足依賴關系的關聯報文序列。
42.在一些實施例中,根據所述原始報文之間的依賴關系生成關聯報文序列。該關聯報文序列的數據結構可以是隊列。具體的,利用隊列這種數據結構,依次將根據依賴關系確定的auth授權報文、trans過渡報文、act執行報文加入隊列,即可得到關聯報文序列。這樣,利用隊列先進先出的特性來存儲原始報文以生成關聯報文序列,從而保證原始報文按照預期的順序發送至網頁服務器,以使原始報文按照預期的順序被網頁服務器所處理。
43.需要說明的是,關聯報文序列并不是必須由auth授權報文、trans過渡報文、act執行報文三種組成。參考圖3,為本技術實施例的示例性的關聯報文序列的組成方式:如(a)所示,關聯報文序列可以由auth授權報文和act執行報文組成;如(b)所示,關聯報文序列可以包括多條trans過渡報文以滿足需要多條報文才能驅使網頁服務器進入就緒狀態的情況;如(c)所示,關聯報文序列包括auth授權報文、trans過渡報文、act執行報文。
44.在另一個實施例中,在生成關聯報文序列的過程中可以不按照一定的存儲順序對原始報文進行存儲,但是需要對每一條原始報文作標注以標記用于后續將這些原始報文發送至網頁服務器的發送順序,從而保證這些原始報文能夠被網頁服務器正確處理。
45.步驟s103、確定所述原始報文中的目標原始報文,將所述目標原始報文解析為預先設計的結構體,并選擇所述結構體的任意一個節點進行變異。
46.本實施例中,根據所述原始報文之間的依賴關系確定所述原始報文中的目標原始報文,所述目標原始報文為act執行報文;將act執行報文解析為預先設計的結構體,且該結構體是基于http協議規范設計的。
47.具體的,該結構體包括請求行、請求頭、輸入數據、分值以及報文類型。其中,請求行包括請求方法、請求路徑和http協議版本;請求頭都是鍵值對的形式,可以采用字典結構進行存儲;輸入數據包括原始報文的統一資源定位符中攜帶的數據以及所述請求體中的數據,且為key=value形式的字典結構;分值表示變異的優先級,即分值越高,包含該act執行報文的關聯報文序列在后續的變異階段被選取而進行變異操作的概率越大;報文類型即auth授權報文、trans過渡報文、act執行報文。
48.可以理解,因為輸入數據來自于用戶輸入的數據(即,輸入框輸入的內容,本實施例中通過爬蟲自動識別輸入框,并填對應的值以模擬得到輸入數據),因此后續的變異操作主要集中于輸入數據。而分值和報文類型不屬于原始報文的內容,因此不對其進行變異操作,但分值和報文類型對于變異操作有重要的指導意義。
49.在一些實施例中,關聯報文序列的分值的初始值為0,并在模糊測試執行過程中根據反饋結果對分值進行動態調整。例如,當包括多項邏輯步驟時,將關聯報文序列a發送至網頁服務器,在第一步就出現問題,因邏輯不符而被網頁服務器拒絕;將關聯報文序列b發送至網頁服務器,可以執行到第二步。雖然發送關聯報文序列a或關聯報文序列b均沒有執行完整的邏輯,這是因為崩潰是最理想的結果,需要一步一步最終才能觸發崩潰(例如,可能需要執行到第五步才可以觸發漏洞),這樣的話,能夠執行的步驟越多則越有效。因此,證明關聯報文序列b相較于關聯報文序列a更能夠深入網頁服務器的邏輯,即,關聯報文序列b相較于關聯報文序列a更有效,因此給關聯報文序列b賦更高的分值,從而根據分值優先選取關聯報文序列b進行變異。
50.在一些實施例中,所述結構體的每一個節點繼承預先設計的基礎數據類。具體的,該基礎數據類包括節點值、數據類型、數據長度、執行標記以及分值。所述節點值為字符串
類型,且該節點值對應后續更新的關聯報文序列中更新的目標原始報文的字段值(即,最終可以發送給網頁服務器的關聯報文序列中act執行報文的字段值);所述數據類型表示所述節點所執行的變異操作,且數據類型支持字符串、數值、枚舉三種類型;所述執行標記表示所述節點是否能夠執行變異操作;所述分值表示所述節點進行變異的優先級。這樣,通過數據類型、數據長度、執行標記以及分值可以反映節點屬性。
51.其中,所述數據類型決定了所述節點可以執行的變異操作。例如,若為字符串,則不能變異為數字。然而,如果沒有標記類型會導致隨便變異,則無法保證合法性。
52.這樣,基于該基礎數據類,對所述結構體的每一個節點進行統一規范,以便后續根據節點的屬性選擇相應的變異操作。
53.在一些實施例中,基于上述所設計的結構體,選擇所述結構體的任意一個節點進行變異。由于固件web接口的通信報文是高度結構化的,而傳統的模糊測試的變異方法很難生成結構合法并且符合后端業務邏輯的測試報文。
54.本實施例中,變異方法包括節點內變異和節點間變異。
55.其中,節點內變異是指對基礎數據類的節點值進行變異。節點內變異的具體變異策略如下。
56.(1)枚舉類型變異:本實施例將http請求方法定義為枚舉類型,枚舉類型對該字段有更強的約束,如在對http請求方法進行變異時,只能變異為其他的枚舉類型,這樣就可以避免post變異為poxt等情況,使變異后的報文最大化滿足http協議約束。
57.(2)數據擴充:在數據后追加長字符串或執行命令,可以觸發潛在的遠程命令執行漏洞或內存損壞漏洞,主要針對字符串類型的數據進行變異。
58.(3)數據置空:如果僅僅依靠前端校驗,服務器或后端對于空數據沒有響應的校驗或處理措施,那么就有可能觸發安全漏洞。
59.(4)整數替換:用經典的模糊測試邊界值替換整數類型的值,那么就有可能觸發整數溢出漏洞?;A數據類的數據類型僅定義了枚舉類、字符串、數值三種類型,對于數值類型的數據,本實施例通過正則匹配識別其中的整數,將匹配到的整數替換為典型的整數邊界值,如和,其中。
60.(5)類型變更:改變數據類型可能會導致數據校驗錯誤而觸發相關漏洞。如將數值類型的數據替換為隨機字符串。
61.(6)特殊字符替換:用構造的特殊字符串替換字符串類型的數據。如將請求路徑《結構體-請求行-請求路徑》的值變異為目錄穿越型路徑,就有可能導致隱私泄露問題。
62.進一步的,節點整體變異(節點間變異)指對整個節點進行刪除、插入等操作,因為http報文高度結構化的特性,所以對結構體的請求頭和請求行進行節點整體變異容易導致報文的不合法,所以節點整體變異的對象是約束性較弱的結構體-輸入數據中的鍵值對。節點整體變異的具體策略如下。
63.(1)節點刪除:隨機刪除結構體-輸入數據中的一個鍵值對,無論是刪除統一資源定位符中攜帶的還是所述請求體中的鍵值對,都不影響后續序列化后報文結構的合法性。
64.(2)節點互換:隨機選取結構體-輸入數據中的兩個鍵值對,交換它們的值。因為交換鍵值對的順序并不會對報文有實際的影響,所以采用交換值的方法。
65.(3)節點插入:將隨機構造的鍵值對插入結構體-輸入數據中,可能觸發未知參數解析漏洞。
66.這樣,結合節點內變異和節點間變異兩種方式,既可以實現節點值的小步變異,也可以實現節點間的大步突變,在保證報文結構合法性的同時也最大化滿足了測試用例的數據畸形性。
67.步驟s104、對變異后的所述結構體進行序列化得到更新的目標原始報文以及更新的關聯報文序列。
68.由于目標原始報文的結構體不符合http規范,因此需要基于http協議語法,利用相應的分隔符將目標原始報文的結構體的各字段進行拼接得到請求行、請求頭和請求體,然后將各部分拼接為完整的http報文。這樣,通過將變異后的結構體進行序列化得到結構合法的更新的目標原始報文,從而得到更新的關聯報文序列,以得到可以傳輸給網頁服務器的形式。
69.步驟s105、將所述更新的關聯報文序列發送至所述網頁服務器,以進行模糊測試。
70.在一些實施例中,當將更新的關聯報文序列發送至網頁服務器以進行模糊測試后,需要監控執行信息和捕獲異常情況,以根據網頁服務器的反饋信息對關聯報文序列進行動態調整以及調度變異的優先級。例如,若關聯報文序列導致設備崩潰,說明該關聯報文序列很有效,可能觸發了某個漏洞。
71.基于同一技術構思,與上述任一實施例方法相對應的,本技術還提供了一種模糊測試裝置400。
72.參考圖4,所述模糊測試裝置400,包括:獲取模塊401,被配置為:根據預先仿真得到的固件,獲取原始報文;生成模塊402,被配置為:響應于確定所述原始報文的數量大于一個,根據所述原始報文之間的依賴關系生成關聯報文序列;其中,所述依賴關系表征所述原始報文被預先搭建的網頁服務器處理的順序;變異模塊403,被配置為:確定所述原始報文中的目標原始報文,將所述目標原始報文解析為預先設計的結構體,并選擇所述結構體的任意一個節點進行變異;更新模塊404,被配置為:對變異后的所述結構體進行序列化得到更新的目標原始報文以及更新的關聯報文序列;發送模塊405,被配置為:將所述更新的關聯報文序列發送至所述網頁服務器,以進行模糊測試。
73.由獲取模塊401、生成模塊402、變異模塊403、更新模塊404和發送模塊405組成的模糊測試裝置,利用獲取模塊401實現固件仿真和原始報文的獲取,成本低、適用范圍廣,避免了真實設備無法添加高效精確的輸出監控手段而會影響模糊測試的結果準確性的問題;利用生成模塊402、變異模塊403、更新模塊404和發送模塊405將滿足依賴關系的關聯報文序列進行變異并發送給網頁服務器以獲取反饋結果,保證了變異的畸形度和變異后報文的結構合法性,從而提高模糊測試的效率和漏洞挖掘能力。
74.在一些可選的實施例中,模糊測試裝置400可以進一步包括輸出監控模塊和調度模塊(圖4中未示出)。具體的,輸出監控模塊被配置為監控執行信息和捕獲異常情況,并將網頁服務器的反饋信息發送給調度模塊;調度模塊被配置為根據接收到的輸出監控模塊的
信息對關聯報文序列進行動態調整和度變異的優先級,以及調度模糊測試裝置400中的各模塊進行協同工作。
75.為了描述的方便,描述以上裝置時以功能分為各種模塊分別描述。當然,在實施本技術時可以把各模塊的功能在同一個或多個軟件和/或硬件中實現。
76.上述實施例的裝置用于實現前述任一實施例中相應的模糊測試方法,并且具有相應的方法實施例的有益效果,在此不再贅述。
77.基于同一技術構思,與上述任一實施例方法相對應的,本技術還提供了一種電子設備,包括存儲器、處理器及存儲在所述存儲器上并可由所述處理器執行的計算機程序,所述處理器執行所述計算機程序時實現如上任一實施例所述的模糊測試方法。
78.圖5示出了本實施例所提供的一種更為具體的電子設備硬件結構示意圖,該設備可以包括:處理器1010、存儲器1020、輸入/輸出接口1030、通信接口1040和總線1050。其中處理器1010、存儲器1020、輸入/輸出接口1030和通信接口1040通過總線1050實現彼此之間在設備內部的通信連接。
79.處理器1010可以采用通用的cpu(central processing unit,中央處理器)、微處理器、應用專用集成電路(application specific integrated circuit,asic)、或者一個或多個集成電路等方式實現,用于執行相關程序,以實現本說明書實施例所提供的技術方案。
80.存儲器1020可以采用rom(read only memory,只讀存儲器)、ram(random access memory,隨機存取存儲器)、靜態存儲設備,動態存儲設備等形式實現。存儲器1020可以存儲操作系統和其他應用程序,在通過軟件或者固件來實現本說明書實施例所提供的技術方案時,相關的程序代碼保存在存儲器1020中,并由處理器1010來調用執行。
81.輸入/輸出接口1030用于連接輸入/輸出模塊,以實現信息輸入及輸出。輸入輸出/模塊可以作為組件配置在設備中(圖中未示出),也可以外接于設備以提供相應功能。其中輸入設備可以包括鍵盤、鼠標、觸摸屏、麥克風、各類傳感器等,輸出設備可以包括顯示器、揚聲器、振動器、指示燈等。
82.通信接口1040用于連接通信模塊(圖中未示出),以實現本設備與其他設備的通信交互。其中通信模塊可以通過有線方式(例如usb、網線等)實現通信,也可以通過無線方式(例如移動網絡、wifi、藍牙等)實現通信。
83.總線1050包括一通路,在設備的各個組件(例如處理器1010、存儲器1020、輸入/輸出接口1030和通信接口1040)之間傳輸信息。
84.需要說明的是,盡管上述設備僅示出了處理器1010、存儲器1020、輸入/輸出接口1030、通信接口1040以及總線1050,但是在具體實施過程中,該設備還可以包括實現正常運行所必需的其他組件。此外,本領域的技術人員可以理解的是,上述設備中也可以僅包含實現本說明書實施例方案所必需的組件,而不必包含圖中所示的全部組件。
85.上述實施例的電子設備用于實現前述任一實施例中相應的模糊測試方法,并且具有相應的方法實施例的有益效果,在此不再贅述。
86.基于同一技術構思,與上述任一實施例方法相對應的,本技術還提供了一種非暫態計算機可讀存儲介質,所述非暫態計算機可讀存儲介質存儲計算機指令,所述計算機指令用于使計算機執行如上任一實施例所述的模糊測試方法。
87.本實施例的計算機可讀介質包括永久性和非永久性、可移動和非可移動媒體可以由任何方法或技術來實現信息存儲。信息可以是計算機可讀指令、數據結構、程序的模塊或其他數據。計算機的存儲介質的例子包括,但不限于相變內存(pram)、靜態隨機存取存儲器(sram)、動態隨機存取存儲器(dram)、其他類型的隨機存取存儲器(ram)、只讀存儲器(rom)、電可擦除可編程只讀存儲器(eeprom)、快閃記憶體或其他內存技術、只讀光盤只讀存儲器(cd-rom)、數字多功能光盤(dvd)或其他光學存儲、磁盒式磁帶,磁帶磁盤存儲或其他磁性存儲設備或任何其他非傳輸介質,可用于存儲可以被計算設備訪問的信息。
88.上述實施例的存儲介質存儲的計算機指令用于使所述計算機執行如上任一實施例所述的模糊測試方法,并且具有相應的方法實施例的有益效果,在此不再贅述。
89.所屬領域的普通技術人員應當理解:以上任何實施例的討論僅為示例性的,并非旨在暗示本技術的范圍(包括權利要求)被限于這些例子;在本技術的思路下,以上實施例或者不同實施例中的技術特征之間也可以進行組合,步驟可以以任意順序實現,并存在如上所述的本技術實施例的不同方面的許多其它變化,為了簡明它們沒有在細節中提供。
90.另外,為簡化說明和討論,并且為了不會使本技術實施例難以理解,在所提供的附圖中可以示出或可以不示出與集成電路(ic)芯片和其它部件的公知的電源/接地連接。此外,可以以框圖的形式示出裝置,以便避免使本技術實施例難以理解,并且這也考慮了以下事實,即關于這些框圖裝置的實施方式的細節是高度取決于將要實施本技術實施例的平臺的(即,這些細節應當完全處于本領域技術人員的理解范圍內)。在闡述了具體細節(例如,電路)以描述本技術的示例性實施例的情況下,對本領域技術人員來說顯而易見的是,可以在沒有這些具體細節的情況下或者這些具體細節有變化的情況下實施本技術實施例。因此,這些描述應被認為是說明性的而不是限制性的。
91.盡管已經結合了本技術的具體實施例對本技術進行了描述,但是根據前面的描述,這些實施例的很多替換、修改和變型對本領域普通技術人員來說將是顯而易見的。例如,其它存儲器架構(例如,動態ram(dram))可以使用所討論的實施例。
92.本技術實施例旨在涵蓋落入所附權利要求的寬泛范圍之內的所有這樣的替換、修改和變型。因此,凡在本技術實施例的精神和原則之內,所做的任何省略、修改、等同替換、改進等,均應包含在本技術的保護范圍之內。


文章投稿或轉載聲明

本文鏈接:http://m.newhan.cn/zhuanli/patent-8-848-0.html

來源:專利查詢檢索下載-實用文體寫作網版權所有,轉載請保留出處。本站文章發布于 2022-11-27 21:16:13

發表評論

驗證碼:
用戶名: 密碼: 匿名發表
評論列表 (有 條評論
,2人圍觀
參與討論