解可以通過(guò)明顯的語(yǔ)義判斷漏洞的存在與否。
[0019]作為示例,對(duì)于PHP文件user, php如下所示的基于mysqli的使用了預(yù)編譯參數(shù)進(jìn)行數(shù)據(jù)庫(kù)查詢的操作是不存在SQL注入漏洞的:
“…$query = "select * from user where username = ?";
$stmt =$this->mysql1->prepare($query);
$stmt -> bind_paramC s', $username)…,,
然而以下通過(guò)字符串拼接的方式則明顯存在SQL注入漏洞的,并且可根據(jù)語(yǔ)義生成攻擊的攻擊載荷。
[0020]“…$query = "select 氺 from user where username = ”.$username;
$stmt = $this->mysqli_>prepare ($query)...,,
本領(lǐng)域技術(shù)人員能夠理解可綜合根據(jù)風(fēng)格檢查、屬性檢查等方法識(shí)別SQL注入漏洞,從而判斷Web應(yīng)用功能點(diǎn)(http://xssrat.sinaapp.com/user, php)是否存在SQL注入漏洞。
[0021]本領(lǐng)域技術(shù)人員能夠理解有些漏洞即使是通過(guò)多種代碼靜態(tài)分析,也只能判斷為可能存在,因此,代碼安全分析的結(jié)果包括:明確不可能存在的漏洞,可能存在的漏洞,明確存在的漏洞及相應(yīng)的攻擊載荷。攻擊載荷指的是一段特殊的代碼,是可植入目標(biāo)系統(tǒng)運(yùn)行,并控制目標(biāo)行為的代碼。假設(shè)上述示例中的http://xssrat.sinaapp.com/user, php的username字段存在明顯的SQL注入漏洞,則一個(gè)測(cè)試用攻擊URL為:
http://xssrat.sinaapp.com/user.php?username=adminJ un1n selectdatabase (),vers1n ()—
其中攻擊載荷則為
username=adminJ un1n select database (), vers1n ()—
通過(guò)發(fā)送一系列的上述攻擊載荷,可以根據(jù)HTTP響應(yīng)結(jié)果獲取到Web應(yīng)用中的數(shù)據(jù)庫(kù)信息。
[0022]在一個(gè)實(shí)施例中,對(duì)該一個(gè)Web應(yīng)用功能點(diǎn)的檢測(cè)包括以下過(guò)程:
通過(guò)所述第二裝置,根據(jù)該Web應(yīng)用功能點(diǎn)涉及的Web應(yīng)用功能點(diǎn)URL和該Web應(yīng)用功能點(diǎn)的漏洞模板子集生成作為攻擊載荷的HTTP請(qǐng)求,并向所述Web應(yīng)用發(fā)送該HTTP請(qǐng)求,
由所述第二裝置接收該HTTP請(qǐng)求的HTTP響應(yīng),并根據(jù)該HTTP響應(yīng)分析和驗(yàn)證Web漏洞。
[0023]在本發(fā)明的實(shí)施例中,漏洞模板為檢測(cè)某個(gè)特定漏洞的描述腳本,根據(jù)實(shí)現(xiàn)方式不同,它可以例如是python語(yǔ)言腳本、XML語(yǔ)言腳本等等。漏洞模板分為檢測(cè)部分和驗(yàn)證部分,檢測(cè)部分負(fù)責(zé)生成特定的報(bào)文,發(fā)送至Web應(yīng)用,驗(yàn)證部分根據(jù)Web應(yīng)用的返回值和/或監(jiān)控信息來(lái)驗(yàn)證漏洞是否存在。
[0024]在一個(gè)實(shí)施例中,所述方法包括:
通過(guò)所述第一裝置實(shí)時(shí)監(jiān)控Web服務(wù)器日志、Web服務(wù)器資源狀況、來(lái)自網(wǎng)絡(luò)的SQL查詢語(yǔ)句得到監(jiān)控信息,
在一個(gè)Web應(yīng)用功能點(diǎn)的檢測(cè)的過(guò)程包括:
由所述第二裝置接收該HTTP請(qǐng)求的HTTP響應(yīng),
由所述第二裝置從所述第一裝置接收監(jiān)控信息,
由所述第二裝置根據(jù)該HTTP響應(yīng)和該監(jiān)控信息分析和驗(yàn)證Web漏洞。
[0025]在一個(gè)示例中,Web應(yīng)用的監(jiān)控信息包括Web應(yīng)用CPU占用率、Web應(yīng)用占用內(nèi)存大小、Web應(yīng)用所屬Web服務(wù)器中間件日志、Web應(yīng)用日志、SQL查詢語(yǔ)句。
[0026]圖2是根據(jù)本發(fā)明一個(gè)方面的檢測(cè)Web應(yīng)用的系統(tǒng)的示意圖。如圖所示,檢測(cè)Web應(yīng)用的系統(tǒng)可以包括第一裝置和第二裝置。第一裝置被設(shè)置在Web服務(wù)器中,第二裝置獨(dú)立于Web服務(wù)器被設(shè)置。第一裝置、第二裝置以及Web服務(wù)器中的Web應(yīng)用互相通過(guò)有線或者無(wú)線鏈路連接。
[0027]在一個(gè)實(shí)施例中,第一裝置被配置為所述Web服務(wù)器中的Web應(yīng)用基本信息,以及將該Web應(yīng)用基本信息發(fā)送至所述第二裝置,該Web應(yīng)用基本信息包括Web應(yīng)用文件目錄結(jié)構(gòu)、Web應(yīng)用腳本語(yǔ)言類型,第二裝置被配置為通過(guò)HTTP協(xié)議遍歷所述Web服務(wù)器中的Web應(yīng)用生成第一 URL集合,所述第二裝置被配置為比較所述Web應(yīng)用文件目錄結(jié)構(gòu)和所述第一 URL集合生成第二 URL集合,所述第二裝置被配置為根據(jù)所述第二 URL集合確定Web應(yīng)用功能點(diǎn)、該Web應(yīng)用功能點(diǎn)涉及的Web應(yīng)用功能點(diǎn)URL、該Web應(yīng)用功能點(diǎn)源文件,其中,Web應(yīng)用功能點(diǎn)指具有特定功能的Web應(yīng)用接口,所述第二裝置被配置為根據(jù)所述Web應(yīng)用基本信息確定漏洞模板集合,漏洞模板是檢測(cè)特定漏洞的描述腳本。
[0028]在一個(gè)實(shí)施例中,所述第一裝置被配置為根據(jù)指令對(duì)所述Web應(yīng)用功能點(diǎn)的源文件進(jìn)行代碼安全分析明得到關(guān)于該Web應(yīng)用功能點(diǎn)明確不可能存在的漏洞、可能存在的漏洞、明確存在的漏洞、對(duì)應(yīng)于明確存在的漏洞的攻擊載荷,所述第二裝置被配置為根據(jù)關(guān)于該Web應(yīng)用功能點(diǎn)明確不可能存在的漏洞、可能存在的漏洞、明確存在的漏洞、對(duì)應(yīng)于明確存在的漏洞的攻擊載荷,從漏洞模板集合確定適用于該Web應(yīng)用功能點(diǎn)的漏洞模板子集。
[0029]在一個(gè)實(shí)施例中,所述第二裝置被配置為根據(jù)該Web應(yīng)用功能點(diǎn)涉及的Web應(yīng)用功能點(diǎn)URL和該Web應(yīng)用功能點(diǎn)的漏洞模板子集生成作為攻擊載荷的HTTP請(qǐng)求,并向所述Web應(yīng)用發(fā)送該HTTP請(qǐng)求,所述第二裝置被配置為接收該HTTP請(qǐng)求的HTTP響應(yīng),并根據(jù)該HTTP響應(yīng)分析和驗(yàn)證Web漏洞。
[0030]在一個(gè)實(shí)施例中,所述第一裝置被配置為實(shí)時(shí)監(jiān)控Web服務(wù)器日志、Web服務(wù)器資源狀況、來(lái)自網(wǎng)絡(luò)的SQL查詢語(yǔ)句得到監(jiān)控信息,所述第二裝置被配置為接收該HTTP請(qǐng)求的HTTP響應(yīng),所述第二裝置被配置為從所述第一裝置接收監(jiān)控信息,所述第二裝置被配置為根據(jù)該HTTP響應(yīng)和該監(jiān)控信息分析和驗(yàn)證Web漏洞。
【主權(quán)項(xiàng)】
1.一種檢測(cè)Web應(yīng)用的方法,其特征在于,所述方法包括: 預(yù)分析所述Web應(yīng)用的過(guò)程: 通過(guò)在Web服務(wù)器中設(shè)置的第一裝置獲取所述Web服務(wù)器中的Web應(yīng)用基本信息,以及將該Web應(yīng)用基本信息發(fā)送至所述第二裝置,該Web應(yīng)用基本信息包括Web應(yīng)用文件目錄結(jié)構(gòu)、Web應(yīng)用腳本語(yǔ)言類型, 通過(guò)獨(dú)立于所述Web服務(wù)器設(shè)置的第二裝置通過(guò)HTTP協(xié)議遍歷所述Web服務(wù)器中的Web應(yīng)用生成第一 URL集合, 通過(guò)所述第二裝置比較所述Web應(yīng)用文件目錄結(jié)構(gòu)和所述第一 URL集合生成第二 URL口, 通過(guò)所述第二裝置根據(jù)所述第二 URL集合確定Web應(yīng)用功能點(diǎn)、該Web應(yīng)用功能點(diǎn)涉及的Web應(yīng)用功能點(diǎn)URL、該Web應(yīng)用功能點(diǎn)源文件,其中,Web應(yīng)用功能點(diǎn)指具有特定功能的Web應(yīng)用接口, 通過(guò)所述第二裝置根據(jù)所述Web應(yīng)用基本信息確定漏洞模板集合,漏洞模板是檢測(cè)特定漏洞的描述腳本。2.如權(quán)利要求1所述的方法,其特征在于,對(duì)一個(gè)Web應(yīng)用功能點(diǎn)的分析包括以下過(guò)程: 通過(guò)所述第一裝置根據(jù)指令對(duì)所述Web應(yīng)用功能點(diǎn)的源文件進(jìn)行代碼安全分析明得到關(guān)于該Web應(yīng)用功能點(diǎn)明確不可能存在的漏洞、可能存在的漏洞、明確存在的漏洞、對(duì)應(yīng)于明確存在的漏洞的攻擊載荷, 通過(guò)所述第二裝置根據(jù)關(guān)于該Web應(yīng)用功能點(diǎn)明確不可能存在的漏洞、可能存在的漏洞、明確存在的漏洞、對(duì)應(yīng)于明確存在的漏洞的攻擊載荷,從漏洞模板集合確定適用于該Web應(yīng)用功能點(diǎn)的漏洞模板子集。3.如權(quán)利要求2所述的方法,其特征在于,對(duì)該一個(gè)Web應(yīng)用功能點(diǎn)的檢測(cè)包括以下過(guò)程: 通過(guò)所述第二裝置,根據(jù)該Web應(yīng)用功能點(diǎn)涉及的Web應(yīng)用功能點(diǎn)URL和該Web應(yīng)用功能點(diǎn)的漏洞模板子集生成作為攻擊載荷的HTTP請(qǐng)求,并向所述Web應(yīng)用發(fā)送該HTTP請(qǐng)求, 由所述第二裝置接收該HTTP請(qǐng)求的HTTP響應(yīng),并根據(jù)該HTTP響應(yīng)分析和驗(yàn)證Web漏洞。4.如權(quán)利要求3所述的方法,其特征在于,所述方法包括: 通過(guò)所述第一裝置實(shí)時(shí)監(jiān)控Web服務(wù)器日志、Web服務(wù)器資源狀況、來(lái)自網(wǎng)絡(luò)的SQL查詢語(yǔ)句得到監(jiān)控信息, 在一個(gè)Web應(yīng)用功能點(diǎn)的檢測(cè)的過(guò)程包括: 由所述第二裝置接收該HTTP請(qǐng)求的HTTP響應(yīng), 由所述第二裝置從所述第一裝置接收監(jiān)控信息, 由所述第二裝置根據(jù)該HTTP響應(yīng)和該監(jiān)控信息分析和驗(yàn)證Web漏洞。5.一種檢測(cè)Web應(yīng)用的系統(tǒng),其特征在于,包括: 在Web服務(wù)器中設(shè)置的第一裝置和通過(guò)獨(dú)立于所述Web服務(wù)器設(shè)置的第二裝置,其中, 第一裝置被配置為所述Web服務(wù)器中的Web應(yīng)用基本信息,以及將該Web應(yīng)用基本信息發(fā)送至所述第二裝置,該Web應(yīng)用基本信息包括Web應(yīng)用文件目錄結(jié)構(gòu)、Web應(yīng)用腳本語(yǔ)言類型, 第二裝置被配置為通過(guò)HTTP協(xié)議遍歷所述Web服務(wù)器中的Web應(yīng)用生成第一 URL集入PU, 所述第二裝置被配置為比較所述Web應(yīng)用文件目錄結(jié)構(gòu)和所述第一 URL集合生成第二URL集合, 所述第二裝置被配置為根據(jù)所述第二 URL集合確定Web應(yīng)用功能點(diǎn)、該Web應(yīng)用功能點(diǎn)涉及的Web應(yīng)用功能點(diǎn)URL、該Web應(yīng)用功能點(diǎn)源文件,其中,Web應(yīng)用功能點(diǎn)指具有特定功能的Web應(yīng)用接口, 所述第二裝置被配置為根據(jù)所述Web應(yīng)用基本信息確定漏洞模板集合,漏洞模板是檢測(cè)特定漏洞的描述腳本。6.如權(quán)利要求5所述的系統(tǒng),其特征在于, 所述第一裝置被配置為根據(jù)指令對(duì)所述Web應(yīng)用功能點(diǎn)的源文件進(jìn)行代碼安全分析明得到關(guān)于該Web應(yīng)用功能點(diǎn)明確不可能存在的漏洞、可能存在的漏洞、明確存在的漏洞、對(duì)應(yīng)于明確存在的漏洞的攻擊載荷, 所述第二裝置被配置為根據(jù)關(guān)于該Web應(yīng)用功能點(diǎn)明確不可能存在的漏洞、可能存在的漏洞、明確存在的漏洞、對(duì)應(yīng)于明確存在的漏洞的攻擊載荷,從漏洞模板集合確定適用于該Web應(yīng)用功能點(diǎn)的漏洞模板子集。7.如權(quán)利要求6所述的系統(tǒng),其特征在于, 所述第二裝置被配置為根據(jù)該Web應(yīng)用功能點(diǎn)涉及的Web應(yīng)用功能點(diǎn)URL和該Web應(yīng)用功能點(diǎn)的漏洞模板子集生成作為攻擊載荷的HTTP請(qǐng)求,并向所述Web應(yīng)用發(fā)送該HTTP請(qǐng)求, 所述第二裝置被配置為接收該HTTP請(qǐng)求的HTTP響應(yīng),并根據(jù)該HTTP響應(yīng)分析和驗(yàn)證Web漏洞。8.如權(quán)利要求7所述的系統(tǒng),其特征在于, 所述第一裝置被配置為實(shí)時(shí)監(jiān)控Web服務(wù)器日志、Web服務(wù)器資源狀況、來(lái)自網(wǎng)絡(luò)的SQL查詢語(yǔ)句得到監(jiān)控信息, 所述第二裝置被配置為接收該HTTP請(qǐng)求的HTTP響應(yīng), 所述第二裝置被配置為從所述第一裝置接收監(jiān)控信息, 所述第二裝置被配置為根據(jù)該HTTP響應(yīng)和該監(jiān)控信息分析和驗(yàn)證Web漏洞。
【專利摘要】本發(fā)明提出了一種檢測(cè)Web應(yīng)用的方法和系統(tǒng)。檢測(cè)Web應(yīng)用的方法包括以下過(guò)程中一個(gè)或多個(gè)。在過(guò)程101中,預(yù)分析Web應(yīng)用。在該過(guò)程中,確定Web應(yīng)用功能點(diǎn)相關(guān)信息和/或針對(duì)該Web應(yīng)用的漏洞模板集合,漏洞模板是檢測(cè)特定漏洞的腳本。在過(guò)程102中,分析Web應(yīng)用功能點(diǎn)。在該過(guò)程中,從漏洞模板集合確定適用于該Web應(yīng)用功能點(diǎn)的漏洞模板子集。在過(guò)程103中,分析和驗(yàn)證Web漏洞。在該過(guò)程中,由所述第二裝置根據(jù)HTTP響應(yīng)和/或監(jiān)控信息分析和驗(yàn)證Web漏洞。
【IPC分類】H04L29/08
【公開(kāi)號(hào)】CN105141647
【申請(qǐng)?zhí)枴緾N201410244361
【發(fā)明人】王明博, 華錦芝
【申請(qǐng)人】中國(guó)銀聯(lián)股份有限公司
【公開(kāi)日】2015年12月9日
【申請(qǐng)日】2014年6月4日