馬 炅,黃曉芳,陶 啟,張亞文
(西南科技大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,四川 綿陽 621010)
?
一種新的自學(xué)習(xí)web應(yīng)用響應(yīng)分析算法
馬炅,黃曉芳,陶啟,張亞文
(西南科技大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,四川 綿陽621010)
摘要:在web應(yīng)用自動(dòng)滲透測試技術(shù)的發(fā)展中,由于在web應(yīng)用響應(yīng)分析的自動(dòng)化與智能化方面的研究不足,現(xiàn)有web應(yīng)用自動(dòng)滲透測試中仍然需要人為經(jīng)驗(yàn)干預(yù),限制了滲透測試的效率,因此,在研究了關(guān)鍵字響應(yīng)分析技術(shù)與被動(dòng)提取技術(shù)的基礎(chǔ)上提出了自學(xué)習(xí)響應(yīng)分析算法,該算法利用關(guān)鍵字詞庫對(duì)響應(yīng)結(jié)果進(jìn)行分析,若沒有匹配成功再利用啟發(fā)式分析技術(shù)進(jìn)行分析,當(dāng)分析結(jié)果有效則提取響應(yīng)的關(guān)鍵字加入詞庫以達(dá)到自學(xué)習(xí)的目的;實(shí)驗(yàn)證明,該算法能夠?qū)y試響應(yīng)結(jié)果自動(dòng)地進(jìn)行分析,突破了關(guān)鍵字分析技術(shù)只能分析含有關(guān)鍵字的響應(yīng)這一局限,同時(shí),比單純被動(dòng)響應(yīng)提取技術(shù)具有更高的效率。
關(guān)鍵詞:web應(yīng)用;響應(yīng)分析;自學(xué)習(xí)
0引言
伴隨著計(jì)算機(jī)技術(shù)與互聯(lián)網(wǎng)技術(shù)的迅猛發(fā)展,Internet極大地豐富了人類的生活,世界各地豐富多彩的信息得以在一瞬間進(jìn)行交流。Web應(yīng)用已經(jīng)遍布使用到各行各業(yè)中,各種各樣的服務(wù)滿足了不同人群的不同需求。同時(shí),web應(yīng)用不再是一些共有的即能夠共享的信息,大量私密的和高度敏感的信息由于網(wǎng)上應(yīng)用的需要而保存在相關(guān)Web服務(wù)器中。目前,Web應(yīng)用還在朝著更加豐富和復(fù)雜、但又更易于讓用戶操作的方向不斷地發(fā)展。在互聯(lián)網(wǎng)給用戶帶來過去從未有過的豐富生活的同時(shí),web應(yīng)用的安全問題[1]也愈演愈烈,己經(jīng)成為世界所關(guān)注的焦點(diǎn)。因此對(duì)web應(yīng)用的安全測試就成為了當(dāng)今網(wǎng)絡(luò)技術(shù)一個(gè)非常重要的研究課題。很多web應(yīng)用滲透測試軟件應(yīng)運(yùn)而生,但是,因?yàn)閣eb應(yīng)用響應(yīng)分析技術(shù)自動(dòng)化水平較低,限制了滲透測試軟件在自動(dòng)化智能化方向的發(fā)展,所以自動(dòng)化web響應(yīng)分析算法的研究成為解決這一問題的關(guān)鍵。
1相關(guān)研究
目前,對(duì)web安全問題的研究多是關(guān)于其運(yùn)行環(huán)境的研究,例如web應(yīng)用所依賴的服務(wù)器、服務(wù)器軟件、數(shù)據(jù)庫等。對(duì)web應(yīng)用程序滲透測試技術(shù)[2-8]的研究在國內(nèi)外都是剛剛起步,滲透測試程序會(huì)首先向web應(yīng)用發(fā)送精心構(gòu)造的帶有攻擊字符串的請(qǐng)求,然后根據(jù)web應(yīng)用的響應(yīng)來分析漏洞存在與否。但是,由于這些響應(yīng)信息都是由程序員設(shè)計(jì)的,這就導(dǎo)致了由程序來理解分析這些響應(yīng)信息就會(huì)有一定的困難。這也是在文獻(xiàn)[3-7]中滲透測試程序的響應(yīng)是由人工分析而沒有實(shí)現(xiàn)分析自動(dòng)化的原因。
為解決這一問題Raghavan等人在文[9]中提出了基于關(guān)鍵字的響應(yīng)分析算法。該算法通過匹配響應(yīng)頁面中的關(guān)鍵字(如“ODBC Error”、“incorect”、“wrong”、“missing”、“invalid”、“erro”、“error”等)來判斷滲透測試是否成功,web應(yīng)用是否存在漏洞。該算法的優(yōu)點(diǎn)是當(dāng)錯(cuò)誤的響應(yīng)信息中存在這些關(guān)鍵字時(shí)算法耗時(shí)短,計(jì)算資源、網(wǎng)絡(luò)資源占用少因而具有很高的效率。缺點(diǎn)也非常明顯,當(dāng)錯(cuò)誤的響應(yīng)信息中不包含這些關(guān)鍵字時(shí),該算法無法對(duì)響應(yīng)做出正確的分析判斷??梢妴渭兊年P(guān)鍵字分析算法有著很大的局限性,不能運(yùn)用于實(shí)踐之中。
YaoWen Huang等人在文[8]中提出了一個(gè)簡單的被動(dòng)響應(yīng)提取算法(negative response extraction,NRE),下面以SQL注入為例簡單闡述該算法的思想:
1)使用SQL注入字符串構(gòu)造一個(gè)對(duì)目標(biāo)web應(yīng)用的請(qǐng)求,將響應(yīng)記為R1;
2)使用一個(gè)非法字符串(如長度過大的字符串)構(gòu)造會(huì)產(chǎn)生錯(cuò)誤的web應(yīng)用請(qǐng)求,將響應(yīng)記為R2;
3)使用一個(gè)合法字符串構(gòu)造一個(gè)web應(yīng)用請(qǐng)求,將響應(yīng)記為R3。
假定R1響應(yīng)失敗,對(duì)比R1、R2、R3三個(gè)響應(yīng)的相似程度可以推斷出R1響應(yīng)的意義,其可能的組合如表1所示。
表1 NRE算法組合形式
該算法可以在不需要任何附加信息(如關(guān)鍵字)的前提下分析出R1響應(yīng)所代表的含義,主要功能是判定R1響應(yīng)失敗的原因是因?yàn)閻阂庾址贿^濾還是因?yàn)閣eb應(yīng)用根本不存在注入漏洞。但是該算法的缺點(diǎn)也是非常明顯:
首先,假定R1響應(yīng)是一個(gè)滲透測試失敗的響應(yīng),那這個(gè)R1響應(yīng)成功與否又依據(jù)什么來判定呢?
其次,對(duì)于一個(gè)SQL注入字符串就需要至少發(fā)送3次web請(qǐng)求,效率較低,網(wǎng)絡(luò)延遲會(huì)對(duì)滲透測試軟件產(chǎn)生很大影響。
2自學(xué)習(xí)響應(yīng)分析算法
在以上研究的基礎(chǔ)上,我們對(duì)被動(dòng)響應(yīng)提取算法進(jìn)行了改進(jìn),并結(jié)合關(guān)鍵字響應(yīng)技術(shù)提出了一種自學(xué)習(xí)響應(yīng)分析算法。該算法實(shí)現(xiàn)了自動(dòng)化響應(yīng)分析,算法描述如下:
1)利用關(guān)鍵字響應(yīng)分析技術(shù)來分析帶有攻擊字符串請(qǐng)求所引發(fā)的響應(yīng),當(dāng)匹配關(guān)鍵字成功時(shí)直接得出相應(yīng)的結(jié)論,分析結(jié)束。若沒有匹配成功則執(zhí)行2。
2)啟發(fā)式響應(yīng)分析,主要完成兩項(xiàng)工作:滲透測試結(jié)果判定與關(guān)鍵字學(xué)習(xí)。下面是啟發(fā)式響應(yīng)分析中用到的概念與變量的定義。
定義1字符串S,模擬的get或post請(qǐng)求中的參數(shù)(構(gòu)造方法在章節(jié)3.2.3闡述)。
定義2攻擊請(qǐng)求Q1,參數(shù)為S+攻擊字符串的get或post請(qǐng)求。
定義3錯(cuò)誤請(qǐng)求Q2,帶有非法參數(shù)的get或post請(qǐng)求。
定義4正常請(qǐng)求Q3,參數(shù)僅為S的get或post請(qǐng)求。
定義5響應(yīng)R1/R2/R3,為發(fā)送攻擊請(qǐng)求/錯(cuò)誤請(qǐng)求/正常請(qǐng)求時(shí)所產(chǎn)生的響應(yīng)。
定義6關(guān)系R,表示R1、R2、R3三者之間的關(guān)系。
定義7記錄FailCount,記錄滲透測試中攻擊字符串測試沒有通過的個(gè)數(shù),初始值為0。
定義8屏蔽詞,英文中的代詞、數(shù)詞、冠詞、介詞、連詞、感嘆與其他詞(am、is、are、be、being等)。
定義9關(guān)鍵字詞庫,響應(yīng)匹配關(guān)鍵字的集合,每個(gè)關(guān)鍵字有一個(gè)頻度屬性與更新時(shí)間屬性。
定義10準(zhǔn)關(guān)鍵字詞庫,測試過程中所有字詞的集合,每個(gè)字詞有一個(gè)頻度屬性與更新時(shí)間屬性。
啟發(fā)式響應(yīng)分析中,滲透測試結(jié)果判斷的流程如圖1所示。
圖1滲透測試結(jié)果判斷流程圖
步驟描述如下:
1)首先,分別發(fā)送請(qǐng)求Q1、Q2、Q3,獲得響應(yīng)R1、R2、R3。
需要注意的是,與Y.W. Huang等人提出的NRE不同,該算法需要根據(jù)攻擊字符串與R1、R2、R3的關(guān)系R共同推斷該測試是否成功。也就是說,需要攻擊字符串與關(guān)系R共同確定其對(duì)應(yīng)的測試結(jié)論,因?yàn)椴煌墓糇址槍?duì)同一個(gè)關(guān)系R會(huì)得出不同的結(jié)論。下面是3個(gè)示例是3個(gè)攻擊字符串與關(guān)系R的組合。
示例一:攻擊字符串“’”(http://xxx.com/xx.php?id=’)與關(guān)系R所對(duì)應(yīng)的結(jié)論如表2。
表2 “’”與關(guān)系R對(duì)應(yīng)結(jié)論
示例二:攻擊字符串“ and 1=1”(http://xxx.com/xx.php?id=X and 1=1)與關(guān)系R所對(duì)應(yīng)的結(jié)論如表3所示。
表3 “ and 1=1”與關(guān)系R對(duì)應(yīng)結(jié)論
示例三:攻擊字符串“ and 1=2”(http://xxx.com/xx.php?id=X and 1=2)與關(guān)系R對(duì)應(yīng)的結(jié)論如表4所示。
表4 “ and 1=2”與關(guān)系R對(duì)應(yīng)結(jié)論
2)然后,根據(jù)攻擊字符串與關(guān)系R查表得出對(duì)應(yīng)結(jié)論。因?yàn)?,這些對(duì)應(yīng)的結(jié)論里面對(duì)于成功的測試也只是給出可能成功的判斷,所以只有對(duì)一個(gè)注入點(diǎn)構(gòu)造的所有攻擊字符串請(qǐng)求都得出可能存在漏洞時(shí),才可以判斷它可能存在漏洞,只要一個(gè)攻擊字符串得出的結(jié)論是不存在漏洞,則該請(qǐng)求就不存在漏洞。
若最終結(jié)論是可能存在漏洞,則提取R1的英文文本信息,進(jìn)行關(guān)鍵字學(xué)習(xí),其流程如圖2所示。
圖2 關(guān)鍵字學(xué)習(xí)流程圖
過濾掉R1的屏蔽詞之后存入準(zhǔn)關(guān)鍵字詞庫,之后計(jì)算關(guān)鍵字詞庫中詞條的平均匹配頻度AVG,然后把準(zhǔn)關(guān)鍵字詞庫中頻度超過AVG且最近更新時(shí)間大于關(guān)鍵字詞庫中最小更新時(shí)間的記錄寫入關(guān)鍵字詞庫。
3算法實(shí)現(xiàn)
3.1系統(tǒng)架構(gòu)
web響應(yīng)分析算法是為了實(shí)現(xiàn)web滲透測試系統(tǒng)的自動(dòng)化而設(shè)計(jì),在研究基于Java的Web互動(dòng)軟件設(shè)計(jì)與實(shí)現(xiàn)[10]等文的基礎(chǔ)上設(shè)計(jì)了該系統(tǒng)的總體架構(gòu)如圖3所示。
圖3 系統(tǒng)總體架構(gòu)圖
其中爬蟲模塊用于爬取web應(yīng)用的內(nèi)容,內(nèi)容分析模塊將網(wǎng)頁內(nèi)容構(gòu)造成DOM樹,將可以與web應(yīng)用進(jìn)行交互的get請(qǐng)求或post表單提交給滲透測試模塊,滲透測試模塊使用攻擊字符串構(gòu)造請(qǐng)求發(fā)送給web應(yīng)用,并將web響應(yīng)提交給響應(yīng)分析模塊,最后把分析結(jié)果生成報(bào)告輸出。web響應(yīng)分析算法的實(shí)現(xiàn)是在響應(yīng)分析模塊中。
3.2算法實(shí)現(xiàn)
3.2.1建立詞庫
為了存儲(chǔ)關(guān)鍵字需要建立關(guān)鍵字詞庫與準(zhǔn)關(guān)鍵字詞庫,在數(shù)據(jù)庫中建立兩個(gè)數(shù)據(jù)庫表,分別取名為keywords與pre_keywords。這兩個(gè)表除表名不同以外,其他都相同,都具有3個(gè)屬性列,分別為name(關(guān)鍵字拼寫)、freq(關(guān)鍵字被匹配的頻度)、update(最后一次被匹配的時(shí)間)。其中,關(guān)鍵字詞庫是根據(jù)滲透測試人員的實(shí)踐經(jīng)驗(yàn)添加的關(guān)鍵字,并為其freq與update賦予初值;準(zhǔn)關(guān)鍵字詞庫是所有測試收集到的準(zhǔn)關(guān)鍵字集合。
為了過濾代詞、數(shù)詞、冠詞、介詞、連詞、感嘆與其他詞,創(chuàng)建一個(gè)屏蔽詞庫表filter_words。
3.2.2關(guān)鍵字匹配
將文本信息拆分為單詞,經(jīng)過屏蔽詞庫的過濾后存儲(chǔ)在一個(gè)字符串?dāng)?shù)組中。然后先使用關(guān)鍵字詞庫進(jìn)行匹配(字符串完全相同或字符串是關(guān)鍵字的一部分,不區(qū)分大小寫),若匹配成功將該關(guān)鍵字的頻度freq+1,若沒有匹配成功,則使用準(zhǔn)關(guān)鍵字詞庫中頻度超過關(guān)鍵字詞庫平均頻度80%的關(guān)鍵字進(jìn)行匹配,同樣,匹配成功將該關(guān)鍵字的freq+1,同時(shí)更新update。以此法匹配字符串?dāng)?shù)組中的所有單詞,只要有一個(gè)匹配成功,就可以得出“滲透測試可能成功”的結(jié)論,并將總共匹配成功的關(guān)鍵字?jǐn)?shù)記為N,這個(gè)N可以在一定程度上說明結(jié)論的可信性,N值越大,結(jié)論越可信,因此可以作為報(bào)告中的一個(gè)參數(shù)。如果都沒有匹配成功則進(jìn)行啟發(fā)式分析。
3.2.3啟發(fā)式分析
在啟發(fā)式響應(yīng)分析中字符串S的構(gòu)造方法如下:
對(duì)于get請(qǐng)求如http://xxx.com/xxx.asp?Id=10、http://xxx.com/xxx.php?Loginname=xxx等,將“=”后面的字符串賦值給S;對(duì)于post請(qǐng)求,需要根據(jù)表單的name屬性來構(gòu)造S,如對(duì)于,如果匹配到name屬性中含有“email”這一特征字,則需要構(gòu)造一個(gè)郵箱地址形式的S,同理,匹配到name屬性“name”、“l(fā)ogin”等則需要構(gòu)造一個(gè)簡單字符串;如果我們?cè)O(shè)置的所有特征字都沒有匹配到,就使用一個(gè)簡單默認(rèn)字符串。
字符串S構(gòu)造完成之后,按照啟發(fā)式分析算法,依次發(fā)送請(qǐng)求Q1、Q2、Q3。然后調(diào)用Winmerge比較響應(yīng)R1、R2、R3,得出關(guān)系R,用R與攻擊字符串查表得出測試結(jié)論。
對(duì)同一個(gè)請(qǐng)求,所有攻擊字符串結(jié)果判定都為“可能存在漏洞”時(shí),才判斷該請(qǐng)求的注入點(diǎn)可能存在漏洞。若最終測試結(jié)果為“可能存在漏洞”,就將R1解析為DOM樹,抽取其主要標(biāo)簽的文本信息,經(jīng)屏蔽詞庫過濾后,存入準(zhǔn)關(guān)鍵字詞庫,如果該詞已存在則freq+1并更新update。
然后計(jì)算關(guān)鍵字詞庫的平均頻度AVG,把準(zhǔn)關(guān)鍵字詞庫中頻度超過AVG且更新時(shí)間大于關(guān)鍵字詞庫中的最小更新時(shí)間的字詞加入到關(guān)鍵字詞庫中,并刪除其在準(zhǔn)關(guān)鍵字詞庫中的記錄。
4實(shí)驗(yàn)與結(jié)論
我們把滲透測試模塊與響應(yīng)分析模塊組合成一個(gè)Demo程序。為滲透測試模塊提供一系列web應(yīng)用的請(qǐng)求,然后由分析測試模塊進(jìn)行分析。
Demo演示程序界面如圖4所示。
圖4 Demo演示程序界面
為了驗(yàn)證算法的可行性與正確性我們做了4個(gè)實(shí)驗(yàn),分別為:
實(shí)驗(yàn)一,連續(xù)測試50次本地搭建的帶有SQL注入漏洞的web應(yīng)用,即對(duì)同一請(qǐng)求測試50次;
實(shí)驗(yàn)二,測試200個(gè)不存在SQL注入漏洞的get請(qǐng)求;
實(shí)驗(yàn)三,測試200個(gè)存在SQL注入漏洞的get請(qǐng)求;
實(shí)驗(yàn)四,隨機(jī)測試500個(gè)get請(qǐng)求。
其中g(shù)et請(qǐng)求都是通過google語法“inurl”搜索得到,實(shí)驗(yàn)三中的請(qǐng)求也都經(jīng)過人工測試確實(shí)是含有SQL注入漏洞的。由于只是測試該算法是可行性與正確性,測試數(shù)據(jù)不是很多,關(guān)鍵字只設(shè)置了“odbc”、“incorect”、“wrong”、“missing”、“invalid”、“mistake”、“error”并將關(guān)鍵字詞庫的頻度統(tǒng)一設(shè)定為50,時(shí)間設(shè)定為測試時(shí)的系統(tǒng)時(shí)間。實(shí)驗(yàn)結(jié)果如表5所示。
表5 實(shí)驗(yàn)結(jié)果
四次實(shí)驗(yàn)之后關(guān)鍵字頻度如圖5所示。
圖5 關(guān)鍵字頻度
實(shí)驗(yàn)一是對(duì)同一測試請(qǐng)求的多次訓(xùn)練,成功將我們?cè)O(shè)置的mysql、root加入關(guān)鍵字詞庫;實(shí)驗(yàn)二的對(duì)象因沒有漏洞故沒有產(chǎn)生新的關(guān)鍵字;實(shí)驗(yàn)三的對(duì)象是已經(jīng)證明存在SQL注入的請(qǐng)求,找出183個(gè)請(qǐng)求,新增warning、webroot、usr三個(gè)關(guān)鍵字;實(shí)驗(yàn)四是隨機(jī)尋找的get請(qǐng)求,因?yàn)榇嬖诼┒吹恼?qǐng)求較少,沒有新增關(guān)鍵字。
經(jīng)過分析可以看出,該算法可以以一個(gè)較高的正確率自動(dòng)化分析web應(yīng)用請(qǐng)求,并自學(xué)習(xí)添加關(guān)鍵字??朔藛渭冴P(guān)鍵字分析與NRE的不足,同時(shí)又兼具了二者的優(yōu)點(diǎn)。其不足之處在于,需要大量的測試數(shù)據(jù)來進(jìn)行訓(xùn)練,初始關(guān)鍵字頻度的設(shè)定對(duì)于算法運(yùn)行時(shí)的正確性與效率有著較高的影響,但這一參數(shù)的設(shè)定需要在長時(shí)間實(shí)踐中確定,而且隨著程序員web開發(fā)習(xí)慣的變化應(yīng)做出相應(yīng)的調(diào)整,這也是我們下一步研究改進(jìn)的方向。
5結(jié)束語
本文提出的自學(xué)習(xí)響應(yīng)分析算法實(shí)現(xiàn)了對(duì)響應(yīng)的自動(dòng)化分析與判定,對(duì)于web應(yīng)用滲透測試程序自動(dòng)化的發(fā)展有著積極的意義。進(jìn)一步的研究工作是改進(jìn)將關(guān)鍵字從準(zhǔn)關(guān)鍵字詞庫加入到關(guān)鍵字詞庫的算法,使得自學(xué)習(xí)響應(yīng)分析算法能夠更快更準(zhǔn)確的將關(guān)鍵字找到并加入關(guān)鍵字詞庫。
參考文獻(xiàn):
[1] 張炳帥. web安全深度剖析 [M]. 北京:電子工業(yè)出版社, 2015.
[2] 于莉莉,杜蒙杉,張平. web安全性測試技術(shù)綜述[J]. 計(jì)算機(jī)應(yīng)用研究,2012(11):4001-4005.
[3] 邢斌,高嶺,孫騫. 一種自動(dòng)化的滲透測試系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J]. 計(jì)算機(jī)應(yīng)用研究,2010, 27(4): 1384-1387.
[4] 潘古兵,周彥暉. 基于靜態(tài)分析和動(dòng)態(tài)檢測的XSS漏洞發(fā)現(xiàn) [J]. 計(jì)算機(jī)科學(xué),2012(39): 51-53.
[5] 張宗之. 基于爬蟲技術(shù)的web應(yīng)用漏洞挖掘的研究[D].北京:北京郵電大學(xué),2012.
[6] 浦石. Web安全滲透測試研究 [D].西安:西安電子科技大學(xué), 2010.
[7] 趙麗娟. Web應(yīng)用程序滲透測試方法研究 [D].長沙:中南大學(xué), 2014.
[8] Huang Y W, Huang S K, Lin T P. Web application security assessment by fault injection and behavior monitoring[A].Proceedings of the 12th International Conference on World Wide Web,2003[C]. Budapest, Hungary,2003.
[9] Raghavan S, Garcia-Molina H. Crawling the HiddenWeb[A]. Proceedings of the 27th VLDB Conference 2001[C]. Roma,Italy,2001.
[10] 蔡小剛,何麗,周利華. 基于Java的Web互動(dòng)軟件設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)測量與控制,2003:44-46.
A New Algorithm of Self-learning Web Application Response Analysis
Ma Jiong, Huang Xiaofang, Tao Qi, Zhang Yawen
(College of Computer Science & Technology, Southwest University of Science & Technology,Mianyang621010, China)
Abstract:Little research about the analysis of web applications’s response has been done . Its level of automation and intelligence is very low. And web penetration still requires human intervention which directly limit its efficiency . To solve this problem,key words analysis and negative response extraction have been studied, and with the help of the two technology a algorithm named self-learnning response analysis is proposed. At first the algorithm use key words to ananlyse the response. If it fails, heuristic analysis technology is used to work it out. The key words extracted from the response will be stored in the database which is used to keep key words. Experimental results show that the algorithm can analyse the response quickly and correctly. And it can analyse the response that key words analysis can not. At the same time, it is more efficient than negative response extraction.
Keywords:web application; response analysis; self-learning
文章編號(hào):1671-4598(2016)02-0251-04
DOI:10.16526/j.cnki.11-4762/tp.2016.02.069
中圖分類號(hào):TP391
文獻(xiàn)標(biāo)識(shí)碼:A
作者簡介:馬炅(1990-),男,山東泰安人,碩士研究生,主要從事網(wǎng)絡(luò)安全方向的研究。
基金項(xiàng)目:國家自然科學(xué)基金項(xiàng)目(61303230);四川省科技支撐計(jì)劃項(xiàng)目(11ZS2010)。
收稿日期:2015-08-26;修回日期:2015-09-17。