国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于PHP的在線跨站腳本檢測(cè)工具

2015-10-26 22:32王佩牛晨丁立彤
現(xiàn)代電子技術(shù) 2015年20期
關(guān)鍵詞:安全檢測(cè)

王佩+牛晨+丁立彤

摘 要: 跨站腳本是一類基于網(wǎng)站應(yīng)用程序的安全漏洞攻擊,將研究和解決快速化的自動(dòng)化檢測(cè)。為了有效地防止跨站腳本被濫用,決定創(chuàng)建一種基于Web 的跨站腳本檢測(cè)方式,以發(fā)現(xiàn)Web站點(diǎn)中潛在的跨站風(fēng)險(xiǎn)。完成主要的6大模塊有:登陸模塊、檢測(cè)模塊、掃描模塊、輸出模塊、報(bào)表模塊、日志模塊。核心代碼模塊是檢測(cè)和掃描部分,他們相互配合構(gòu)造跨站參數(shù)并抓取反饋信息,其他模塊配合核心代碼起到輔助作用。選擇PHP進(jìn)行構(gòu)造是一大亮點(diǎn),PHP是一種Web程序語(yǔ)言,能夠快速地解析前端DOM內(nèi)容,在腳本語(yǔ)言中速度僅次于Python。用Web方式構(gòu)造和檢測(cè)本就屬于Web 攻擊的跨站腳本,將更加快捷、高效。

關(guān)鍵詞: 跨站腳本; Web; PHP; 安全檢測(cè); 掃描

中圖分類號(hào): TP911?34 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 1004?373X(2015)20?0041?03

Online XSS testing tool based on PHP

WANG Pei, NIU Chen, DING Litong

(Xian University of Posts & Telecommunications, Xian 710121, China)

Abstract: The XSS (cross site scripting) is a kind of attack against the security hole based on network application program. Its fast auto?test is studied in this paper. In order to prevent the abuse of XSS effectively, a Web?based XSS testing method is designed to detect the potential cross?site risks in Web sites. Six main modules (login module, detection module, scanning module, output module, report module and log module) were fulfilled, in which the kernel code modules are detection and scanning ones, which cooperate each other to construct cross?site parameters and grab the feedback data. PHP is a Web program language, which can resolve the front?end DOM contents quickly, and its rate is second only to Python in scripting language. To use Web method to structure and detect XSS belonging to the Web attack is more convenient and efficient.

Keywords: cross site scripting; Web; PHP; security detection; scan

在跨站腳本越來(lái)越隱蔽的今天,應(yīng)對(duì)該漏洞威脅就成了一項(xiàng)艱巨的任務(wù)[1?3]。在早期對(duì)跨站腳本的研究只停留在簡(jiǎn)單的暴力式攻擊[4],而對(duì)繞過(guò)等新興的攻擊方式缺乏了解。但近幾年國(guó)外對(duì)于跨站腳本的研究越來(lái)越深入,有了這些研究基礎(chǔ),Web安全大大的提高了[5]。目前國(guó)內(nèi)的研究現(xiàn)狀,也基本已經(jīng)涉及到跨站腳本的各個(gè)層次,唯獨(dú)自動(dòng)化的檢測(cè)工具較少,即便是有也主要針對(duì)SQL注入等漏洞[6?8]。不專注與構(gòu)造型的跨站腳本檢測(cè),本文將補(bǔ)充這類的不足。依據(jù)基本的Javascript 腳本和跨站構(gòu)造方法,可以構(gòu)造出多種多樣的跨站語(yǔ)句,這樣的語(yǔ)句被稱為Payload。通過(guò)HTTP請(qǐng)求,不斷地檢測(cè)Payload提交到Web Server,就可以檢測(cè)站點(diǎn)是否存在跨站腳本,達(dá)到檢測(cè)的目的。

1 跨站腳本攻擊及防范方法

1.1 跨站腳本攻擊

跨站腳本漏洞的攻擊方式主要來(lái)源于Web站點(diǎn)運(yùn)行過(guò)程中,有攻擊者將自己帶有惡意的腳本代碼,提交給該Web服務(wù)器,并在瀏覽器加載時(shí)將惡意代碼一起執(zhí)行。在互聯(lián)網(wǎng)大規(guī)模流行的初期,大量的網(wǎng)站曾遭受到跨站腳本漏洞的攻擊[9]。本文從實(shí)踐角度實(shí)踐產(chǎn)生原理角度,對(duì)研究如何發(fā)掘與利用,如何防范等都做出了大量細(xì)致描述。本文將演示從系統(tǒng)的分析過(guò)程、搭建過(guò)程、運(yùn)行過(guò)程、結(jié)果分析的過(guò)程逐一剖析。

1.2 構(gòu)造攻擊及Bypass

跨站腳本的漏洞攻擊方法很多,其中不乏一些特殊的漏洞利用方式,當(dāng)下所有繞過(guò)方式主要都是由人工完成。通過(guò)人工的漏洞查找雖然細(xì)致,但是效率低下,還要取決于攻擊者自身的編程水平。這樣一來(lái)注入工具就開(kāi)始流行,而通過(guò)程序檢測(cè)跨站腳本,無(wú)法做到及時(shí)發(fā)現(xiàn)和靈活的構(gòu)造。如果要求準(zhǔn)確,而不要求時(shí)間,就可以手動(dòng)注入。如果要求效率而忽略精確程度,就可以采用自動(dòng)化檢測(cè)。本文就是采用自動(dòng)化的檢測(cè)方法進(jìn)行的一系列評(píng)估。耗時(shí)短,掃描量大,但是構(gòu)造方法相對(duì)于手動(dòng)注入缺乏靈活性。

1.3 跨站腳本攻擊防范方法

1.3.1 敏感過(guò)濾

對(duì)付跨站腳本最基本方法就是要將用戶交互的所有地方進(jìn)行過(guò)濾,在Web后臺(tái)語(yǔ)言中幾乎所有的都包括前端標(biāo)簽過(guò)濾函數(shù)。

1.3.2 HTTP頭指定類型

請(qǐng)求的報(bào)文必需包括請(qǐng)求行、請(qǐng)求頭部、空白行和請(qǐng)求內(nèi)容4個(gè)部分組成。在header of request包含了名/值對(duì)的組成的單個(gè)組合數(shù)據(jù),每1對(duì)都是由名稱和值構(gòu)成,然后由英文冒號(hào)近行分割。在HTTP協(xié)議中可以使用報(bào)文的頭部指定內(nèi)容的類型,使得輸出的內(nèi)容避免被作為HTML解析[10]。

2 系統(tǒng)架構(gòu)

2.1 邏輯架構(gòu)

Web Scan漏洞掃描系統(tǒng)是根據(jù)XSSer為掃描引擎的掃描工具。結(jié)合國(guó)內(nèi)最成熟的PHP開(kāi)發(fā)框架ThinkPHP[11],將掃描的Web頁(yè)面信息爬取出來(lái),并根據(jù)參數(shù)尋找到關(guān)鍵字,重新構(gòu)造POST 和 GET 參數(shù)提交給XSSer引擎進(jìn)行掃描,完成后輸出結(jié)果到文件中,前臺(tái)讀取文件,進(jìn)行信息匯總。 系統(tǒng)目錄圖如圖1所示。

圖1 系統(tǒng)目錄

2.2 物理架構(gòu)

圖2物理架構(gòu)描述了一個(gè)標(biāo)準(zhǔn)的Web Scan系統(tǒng)掃描時(shí)經(jīng)過(guò)的物理結(jié)構(gòu),圖中所有的元件都是物理設(shè)備,包括2臺(tái)Web服務(wù)器、路由器、客戶端、主機(jī)。掃描器部署結(jié)構(gòu)。

2.3 系統(tǒng)運(yùn)行環(huán)境

(1) 平臺(tái)環(huán)境:項(xiàng)目環(huán)境采用Ubuntu開(kāi)發(fā),兼容各Linux發(fā)行版本。

(2) 語(yǔ)言環(huán)境:Python,PHP,Javascript。

(3) 引擎環(huán)境:XSSer是用Python開(kāi)發(fā)的滲透測(cè)試跨站漏洞的工具,只針對(duì)跨站腳本進(jìn)行檢測(cè)。

(4) 服務(wù)器環(huán)境: XAMPP(MySQL+ Apache+PHP+PERL)。

圖2 物理架構(gòu)

3 在線跨站腳本檢測(cè)工具

(1) 登陸模塊。此登陸模塊基于ThinKPHP、后臺(tái)架構(gòu)和charisma的前臺(tái)架構(gòu),用戶信息存于MySQL數(shù)據(jù)庫(kù)中。系統(tǒng)默許管理員:admin 系統(tǒng)密碼:admin。

圖3 登陸界面

(2) 檢測(cè)模塊。系統(tǒng)的檢測(cè)模塊,引入simple_html_dom.php,http.php2個(gè)PHP的類文件,幫助分析頁(yè)面的結(jié)構(gòu)和連接數(shù)。DOM樹(shù)[12?13]的結(jié)構(gòu)如圖4所示。

圖4 DOM樹(shù)

(3) 掃描模塊。掃描結(jié)果將輸出到一個(gè)特定的TXT文件中,輸出結(jié)果存在關(guān)鍵字“Final Reasult”將這樣的部分截取出來(lái),截取部分就是掃描的最終結(jié)果,將結(jié)果的風(fēng)險(xiǎn)等級(jí)讀取并傳給PHP 輸出結(jié)果,繪制風(fēng)險(xiǎn)等級(jí)圖。后臺(tái)掃描過(guò)程如圖5所示。

圖5 后臺(tái)掃描

(4) 輸出模塊。輸出過(guò)程主要是根據(jù)XSSer的掃描結(jié)果下的結(jié)論,根據(jù)Web系統(tǒng)風(fēng)險(xiǎn)等級(jí)分類標(biāo)準(zhǔn)輸出。輸出的主要流程為:

第1步:抓取TXT結(jié)果文件中的風(fēng)險(xiǎn) Reasult 的相關(guān)參數(shù);

第2步:將第1步中的內(nèi)容提交給風(fēng)險(xiǎn)繪制模塊;

第3步:將第2步中的內(nèi)容提交給站點(diǎn)輸出模塊;

第4步:按順序執(zhí)行以上模塊,運(yùn)行完成,模塊結(jié)束。

(5) 報(bào)表模塊。TCPDF的導(dǎo)入過(guò)程,下載TCPDF,然后參考文件說(shuō)明里的內(nèi)容一步步進(jìn)行部署,安裝和遷移。

(6) 日志模塊。Web Scan系統(tǒng)選取PHP的報(bào)表輸出組件WordPress。在項(xiàng)目根目錄下生成的log.txt文件中插入相關(guān)的日志內(nèi)容。

4 系統(tǒng)自身安全

Web Scan作為一款漏洞監(jiān)測(cè)、注入類的軟件。自身的安全性非常重要,為了防止系統(tǒng)被攻擊,內(nèi)置了一些安全過(guò)濾規(guī)則。在ThinkPHP的配置中加載進(jìn)去一個(gè)新建的安全配置文件,該規(guī)則將在運(yùn)行時(shí)寫入runtime.php文件中。

5 結(jié) 語(yǔ)

現(xiàn)在,越來(lái)越多的站點(diǎn)重視并修復(fù)了跨站漏洞。但是依然有大量的中小型網(wǎng)站存在這樣的安全問(wèn)題,對(duì)于這一項(xiàng)漏洞的研究工作仍將繼續(xù)。目前國(guó)內(nèi)的研究現(xiàn)狀,也基本已經(jīng)涉及到跨站腳本的各個(gè)層次,唯獨(dú)自動(dòng)化的檢測(cè)工具較少。即便是有也主要針對(duì)SQL注入等漏洞,不專注于構(gòu)造型的跨站腳本檢測(cè),本文補(bǔ)充了這類的不足。本文完成主要的6大模塊:登陸模塊、檢測(cè)模塊、掃描模塊、輸出模塊、報(bào)表模塊、日志模塊。核心代碼模塊是檢測(cè)和掃描部分,他們相互配合構(gòu)造跨站參數(shù)并抓取反饋信息,其他模塊配合核心代碼起到輔助作用。

參考文獻(xiàn)

[1] 廖丹子.“多元性”非傳統(tǒng)安全威脅:網(wǎng)絡(luò)安全挑戰(zhàn)與治理[J].國(guó)際安全研究,2014(3):25?39.

[2] 鄧袁,何國(guó)輝,吳慶.跨站腳本攻擊及防范技術(shù)研究[J].電腦知識(shí)與技術(shù),2012(6):1234?1236.

[3] 吳迪,連一峰,陳愷,等.一種基于攻擊圖的安全威脅識(shí)別和分析方法[J].計(jì)算機(jī)報(bào),2012(9):1938?1950.

[4] 李釗,彭勇,謝豐,等.信息物理系統(tǒng)安全威脅與措施[J].清華大學(xué)學(xué)報(bào):自然科版,2012(10):1482?1487.

[5] 陳建青,張玉清.Web跨站腳本漏洞檢測(cè)工具的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程,2010(6):152?154.

[6] 王云,郭外萍,陳承歡.Web項(xiàng)目中的SQL注入問(wèn)題研究與防范方法[J].計(jì)算機(jī)工程與設(shè)計(jì),2010(5):976?978.

[7] 練坤梅,許靜,田偉,等.SQL注入漏洞多等級(jí)檢測(cè)方法研究[J].計(jì)算機(jī)科學(xué)與探索,2011(5):474?480.

[8] 馬凱,蔡皖東,姚燁.Web 2.0環(huán)境下SQL注入漏洞注入點(diǎn)提取方法[J].計(jì)算機(jī)技術(shù)發(fā)展,2013(3):121?124.

[9] 邱永華.XSS跨站腳本攻擊剖析與防御[M].北京:人民郵電出版社,2013.

[10] 吳翰清.白帽子講Web安全[M].北京:電子工業(yè)出版社,2012.

[11] 許宏云,李煜.基于ThinkPHP的權(quán)限控制模塊的設(shè)計(jì)與實(shí)現(xiàn)[J].微計(jì)算機(jī)信息,2012(9):234?235.

[12] 郭建兵,崔志明,陳明,等.基于DOM樹(shù)與領(lǐng)域本體的Web抽取方法[J].計(jì)算機(jī)工程,2012(5):56?58.

[13] 羅明宇,凌捷.基于DOM樹(shù)序列值比對(duì)的SQL注入漏洞檢測(cè)[J].計(jì)算機(jī)工程與設(shè)計(jì),2015(2):350?354.

猜你喜歡
安全檢測(cè)
危險(xiǎn)場(chǎng)所開(kāi)展電氣防爆安全檢測(cè)
網(wǎng)絡(luò)惡意流量檢測(cè)技術(shù)研究
乌海市| 拜泉县| 金乡县| 尉氏县| 定陶县| 藁城市| 建昌县| 军事| 松滋市| 凤山市| 定结县| 大方县| 友谊县| 裕民县| 利津县| 江油市| 永昌县| 酉阳| 甘南县| 桦川县| 台州市| 宁国市| 临泉县| 阳泉市| 巴青县| 钦州市| 长汀县| 五家渠市| 吉木乃县| 织金县| 汤原县| 册亨县| 讷河市| 临高县| 苏尼特左旗| 碌曲县| 凤阳县| 涟源市| 八宿县| 常宁市| 盈江县|