本發(fā)明涉及目錄遍歷回顯漏洞的檢測,尤其涉及一種檢測應(yīng)用程序目錄遍歷回顯漏洞的方法及系統(tǒng)。
背景技術(shù):
1、目錄遍歷回顯漏洞是一種安全漏洞,它源于web服務(wù)器或web應(yīng)用程序?qū)τ脩糨斎氲奈募Q的安全性驗證不足。網(wǎng)絡(luò)攻擊者可以利用這種漏洞,通過特定的字符或序列繞過服務(wù)器的安全限制,從而訪問服務(wù)器上存儲的敏感信息文件,這些文件可能包括應(yīng)用程序的代碼和數(shù)據(jù)、后端系統(tǒng)的憑據(jù)以及操作系統(tǒng)文件等。在某些情況下,攻擊者甚至可能能夠?qū)懭敕?wù)器上的任意文件,從而修改應(yīng)用程序數(shù)據(jù)或行為,并最終完全控制服務(wù)器。
2、為了保障web應(yīng)用程序的安全性,往往需要采取有效的檢測方法來檢測目錄遍歷回顯漏洞?,F(xiàn)有技術(shù)對于目錄遍歷回顯漏洞的檢測依賴于輸入驗證和配置管理,主要包括對用戶輸入進(jìn)行嚴(yán)格驗證、使用漏洞掃描工具和部署waf等方法。
3、目前的檢測方法存在著如下缺陷:首先,傳統(tǒng)的漏洞掃描工具和waf方法通過預(yù)設(shè)的規(guī)則庫去靜態(tài)地檢測目錄遍歷回顯漏洞,如果新型的漏洞攻擊手法未被記錄在該規(guī)則庫中,則無法完全檢測到應(yīng)用程序中可能存在的目錄遍歷回顯漏洞,易產(chǎn)生漏洞漏報。其次,通過預(yù)設(shè)規(guī)則庫進(jìn)行檢測的方法難以對復(fù)雜的攻擊手段進(jìn)行檢測,攻擊者可采用其他技術(shù)對攻擊手法進(jìn)行混淆從而繞過規(guī)則庫的檢測,局限性大。最后,當(dāng)前的檢測技術(shù)無法定位到產(chǎn)生該目錄遍歷回顯漏洞的代碼行,需要檢測人員手動調(diào)試以進(jìn)行漏洞定位,查找工作量大,耗費(fèi)時間和人力。
4、因此,需要對應(yīng)用程序中遍歷目錄回顯漏洞的檢測方法進(jìn)行改善,以保證應(yīng)用程序質(zhì)量。
技術(shù)實現(xiàn)思路
1、本發(fā)明的目的是提供一種可對應(yīng)用程序中的目錄遍歷回顯漏洞進(jìn)行動態(tài)檢測以提高檢測準(zhǔn)確性的應(yīng)用程序目錄遍歷回顯漏洞的檢測方法及系統(tǒng)。
2、為實現(xiàn)上述目的,本發(fā)明公開了一種應(yīng)用程序目錄遍歷回顯漏洞的檢測方法,其包括:
3、獲取待測應(yīng)用程序中的創(chuàng)建目錄對象的輸入?yún)?shù),所述輸入?yún)?shù)用于指示所述目錄對象的訪問路徑;
4、當(dāng)所述輸入?yún)?shù)來源于用戶所發(fā)出的遍歷目錄請求時,保存與該所述輸入?yún)?shù)相對應(yīng)的目錄對象,以獲得第一目錄對象;
5、獲取當(dāng)前調(diào)用目錄遍歷函數(shù)的目錄對象,以獲得第二目錄對象;
6、當(dāng)所述第二目錄對象與所述第一目錄對象相同時,保存所述目錄遍歷函數(shù)的遍歷返回值以及調(diào)用鏈;
7、如果當(dāng)前所述遍歷目錄請求的響應(yīng)數(shù)據(jù)與所述遍歷返回值之間的相似性符合預(yù)期,則在該所述遍歷目錄請求上設(shè)置漏洞標(biāo)記。
8、具體地,本檢測方法通過插樁工具插樁所述待測應(yīng)用程序,以獲得所述應(yīng)用程序的運(yùn)行數(shù)據(jù)。
9、具體地,所述調(diào)用鏈包括所述第二目錄對象在遍歷所述輸入?yún)?shù)指示的所述訪問路徑時所調(diào)用的所有函數(shù)的調(diào)用信息。
10、具體地,當(dāng)前所述遍歷目錄請求的所述響應(yīng)數(shù)據(jù)與所述遍歷返回值之間的相似性判斷方法包括如下兩種情況中的任一種:
11、情況一:當(dāng)所述響應(yīng)數(shù)據(jù)的長度小于或等于所述遍歷返回值時,通過字符串比較函數(shù)進(jìn)行判斷;
12、情況二:當(dāng)所述響應(yīng)數(shù)據(jù)的長度大于所述遍歷返回值時,還提供一預(yù)設(shè)的相似度分析模型,通過所述相似度分析模型進(jìn)行判斷。
13、具體地,所述字符串比較函數(shù)包括equals函數(shù)和contains函數(shù)。
14、具體地,所述相似度分析模型按照下述步驟對當(dāng)前所述遍歷目錄請求的所述響應(yīng)數(shù)據(jù)與所述遍歷返回值之間的相似性進(jìn)行判斷:
15、獲取所述遍歷返回值中每一子文件的路徑信息和每一子目錄的路徑信息;
16、基于余弦相似度算法計算每一所述子文件的路徑信息或每一所述子目錄的路徑信息與所述響應(yīng)數(shù)據(jù)的文本相似度p1;
17、當(dāng)0.5≤p1<1時,當(dāng)前所述遍歷目錄請求的響應(yīng)數(shù)據(jù)與所述遍歷返回值之間的相似性符合預(yù)期。
18、本發(fā)明還公開一種應(yīng)用程序目錄遍歷回顯漏洞的檢測系統(tǒng),所述檢測系統(tǒng)基于上述的檢測方法工作。
19、本發(fā)明還公開一種應(yīng)用程序目錄遍歷回顯漏洞的檢測系統(tǒng),包括:
20、一個或多個處理器;
21、存儲器;
22、以及一個或多個程序,其中一個或多個程序被存儲在所述存儲器中,并且被配置成由所述一個或多個處理器執(zhí)行,所述程序包括用于執(zhí)行如上所述的檢測方法的指令。
23、本發(fā)明還公開一種計算機(jī)可讀存儲介質(zhì),包括計算機(jī)程序,所述計算機(jī)程序可被處理器執(zhí)行以完成如上所述的檢測方法。
24、與現(xiàn)有技術(shù)相比,本發(fā)明上述技術(shù)方案提供的檢測方法,首先,獲取待測應(yīng)用程序中的創(chuàng)建目錄對象的輸入?yún)?shù),該輸入?yún)?shù)用于創(chuàng)建目錄對象并指示目錄對象的訪問路徑,緊接著,判斷輸入?yún)?shù)是否來源于用戶所發(fā)出的遍歷目錄請求,以判斷該請求是否有可能存在目錄遍歷回顯漏洞,隨后,判斷由輸入?yún)?shù)創(chuàng)建的目錄對象是否與當(dāng)前調(diào)用目錄遍歷函數(shù)的目錄對象是否相同。基于上述兩個步驟,對該遍歷目錄請求是否存在目錄遍歷漏洞進(jìn)行了詳細(xì)的判斷。
25、接著是判斷是否存在目錄遍歷回顯漏洞階段,這需要對遍歷目錄函數(shù)所獲得的遍歷返回值和請求返回的響應(yīng)數(shù)據(jù)的相似性進(jìn)行分析。在這過程中,判斷回顯漏洞是否存在所基于的是目錄對象動態(tài)遍歷得到的遍歷返回值與響應(yīng)體實際被寫入的響應(yīng)數(shù)據(jù),遍歷返回值和響應(yīng)數(shù)據(jù)僅隨輸入?yún)?shù)的改變而改變,而不依賴于特殊的環(huán)境和工具,可適用于所有應(yīng)用程序。這種方法能夠基于請求實際運(yùn)行得到的數(shù)據(jù)動態(tài)地檢測出遍歷目錄回顯漏洞,而不是靜態(tài)地篩選所有可能存在漏洞的請求,從而有效地增加了分析準(zhǔn)確性。另外,在檢測過程中還獲取了目錄遍歷函數(shù)的調(diào)用鏈,使得檢測人員能夠根據(jù)調(diào)用鏈所包含的信息精準(zhǔn)定位漏洞產(chǎn)生處,省去調(diào)試和查找時間,為后續(xù)漏洞的修復(fù)工作提供了極大幫助。
26、總之,該檢測方法基于動態(tài)遍歷得到的遍歷返回值和響應(yīng)數(shù)據(jù)的基礎(chǔ)上對請求是否具有遍歷回顯漏洞進(jìn)行了判斷,有效地提高了檢測的精確度和應(yīng)用程序的整體安全性,該檢測方法的適用性強(qiáng)和靈活性高,還能夠定位漏洞所在行,減少漏洞修復(fù)前的查找和調(diào)試工作量。
1.一種應(yīng)用程序目錄遍歷回顯漏洞的檢測方法,其特征在于,包括:
2.根據(jù)權(quán)利要求1所述的應(yīng)用程序目錄遍歷回顯漏洞的檢測方法,其特征在于,通過插樁工具插樁所述待測應(yīng)用程序,以獲得所述應(yīng)用程序的運(yùn)行數(shù)據(jù)。
3.根據(jù)權(quán)利要求1所述的應(yīng)用程序目錄遍歷回顯漏洞的檢測方法,其特征在于,所述調(diào)用鏈包括所述第二目錄對象在遍歷所述輸入?yún)?shù)指示的所述訪問路徑時所調(diào)用的所有函數(shù)的調(diào)用信息。
4.根據(jù)權(quán)利要求1所述的應(yīng)用程序目錄遍歷回顯漏洞的檢測方法,其特征在于,當(dāng)前所述遍歷目錄請求的所述響應(yīng)數(shù)據(jù)與所述遍歷返回值之間的相似性判斷方法包括如下兩種情況中的任一種:
5.根據(jù)權(quán)利要求4所述的應(yīng)用程序目錄遍歷回顯漏洞的檢測方法,其特征在于,所述字符串比較函數(shù)包括equals函數(shù)和contains函數(shù)。
6.根據(jù)權(quán)利要求4所述的應(yīng)用程序目錄遍歷回顯漏洞的檢測方法,其特征在于,所述相似度分析模型按照下述步驟對當(dāng)前所述遍歷目錄請求的所述響應(yīng)數(shù)據(jù)與所述遍歷返回值之間的相似性進(jìn)行判斷:
7.一種應(yīng)用程序目錄遍歷回顯漏洞的檢測系統(tǒng),其特征在于,所述檢測系統(tǒng)基于權(quán)利要求1至6任一項所述的檢測方法工作。
8.一種應(yīng)用程序目錄遍歷回顯漏洞的檢測系統(tǒng),其特征在于,包括:
9.一種計算機(jī)可讀存儲介質(zhì),其特征在于,包括計算機(jī)程序,所述計算機(jī)程序可被處理器執(zhí)行以完成如權(quán)利要求1至6任一項所述的檢測方法。