• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于模塊化設(shè)計(jì)的Web應(yīng)用程序漏洞利用框架研究與開發(fā)

    2014-01-01 00:00:00吳羽翔

    摘 要:在Web滲透測試中,使用自動化工具進(jìn)行漏洞利用向來是安全人員比較喜歡的一種手段。但隨著Web應(yīng)用的不斷發(fā)展,傳統(tǒng)的自動化安全工具已無法滿足滲透測試員的需求。本文提出了一種全新的Web應(yīng)用攻擊模型,根據(jù)此模型設(shè)計(jì)了一個(gè)開放式的基于模塊化設(shè)計(jì)的Web應(yīng)用程序漏洞利用框架,并簡述了其部分開發(fā)細(xì)節(jié)。該框架可以實(shí)現(xiàn)針對特定Web應(yīng)用的定制化滲透測試并通過其高度自由的模塊化定制實(shí)現(xiàn)各類拓展。

    關(guān)鍵詞:Web滲透測試;漏洞利用;模塊化框架

    中圖分類號:TP311.10

    1 Web滲透測試中的自動化攻擊難題

    隨著Web應(yīng)用越來越廣泛,Web安全威脅日益凸顯。在這種情況下,互聯(lián)網(wǎng)上涌現(xiàn)出一大批Web安全測試工具,安全人員也往往喜歡使用這些自動化工具對目標(biāo)站點(diǎn)進(jìn)行安全測試。使用工具攻擊可以避免人工進(jìn)行重復(fù)工作,減少安全人員的工作量,但隨著Web應(yīng)用的進(jìn)一步發(fā)展,傳統(tǒng)自動化工具也面臨著諸多問題。

    傳統(tǒng)Web應(yīng)用程序自動化工具普遍基于Fuzzing技術(shù),通過向目標(biāo)輸入大量預(yù)先定義好的危險(xiǎn)數(shù)據(jù),觀察站點(diǎn)響應(yīng),從而進(jìn)行攻擊。這類工具有幾大天生的缺陷:

    一是所有攻擊向量均是事先定義好的,無法動態(tài)編輯,從而限制了攻擊的靈活性,如果工具中現(xiàn)有向量對Web應(yīng)用無法產(chǎn)生效果,則攻擊便無法繼續(xù)進(jìn)行。且攻擊缺乏針對性,無法針對目標(biāo)漏洞進(jìn)行精確打擊。

    二是攻擊模式單一,傳統(tǒng)自動化工具普遍采用“請求-響應(yīng)”的攻擊模式,但某些復(fù)雜的Web應(yīng)用程序漏洞,在能夠攻擊漏洞前可能需要進(jìn)行多次不同的請求,或是進(jìn)行某些特定操作后才可以接觸到漏洞頁面,在這種情況下傳 統(tǒng)自動化工具將無法產(chǎn)生任何效果。

    三是捕獲響應(yīng)的手段有限,傳統(tǒng)自動化工具捕獲響應(yīng)的格式通常是預(yù)先定義好的,只能使用通用的匹配模式進(jìn)行響應(yīng)數(shù)據(jù)的捕捉,實(shí)際應(yīng)用中可能會無法捕獲到Web應(yīng)用返回的響應(yīng),因此不能從響應(yīng)數(shù)據(jù)獲取攻擊結(jié)果。

    四是由于開發(fā)者的安全意識逐步提升,不少Web系統(tǒng)都采取了一定的安全措施,包括輸入過濾等。面對這些防御措施,傳統(tǒng)的自動化工具的“無差別攻擊”模式不僅無法繞過防御,還有可能因?yàn)橛|發(fā)了系統(tǒng)防御機(jī)制而使得連接被阻斷。

    五是相比客戶端應(yīng)用程序,Web應(yīng)用程序普遍具有定制性,不同的單位為滿足自身需要,會定制本單位專有的Web平臺,這些平臺在開發(fā)過程、編碼規(guī)范等方面一般不會遵循同樣的準(zhǔn)則。這使得按照“標(biāo)準(zhǔn)”狀況開發(fā)的自動化工具在應(yīng)對一些“意外”情況時(shí)往往無能為力。

    2 基于模塊化的Web應(yīng)用攻擊

    鑒于現(xiàn)有自動化Web安全工具存在以上種種缺陷,安全人員迫切需要一種全新的Web滲透測試自動化解決方案,新方案需要解決的主要問題便在于如何使自動化攻擊可以根據(jù)目標(biāo)特點(diǎn)進(jìn)行調(diào)整與定制,針對指定目標(biāo),只需人工做出微小的調(diào)整,便可以使接下來的攻擊自動進(jìn)行,讓攻擊更加精確有效,且能夠針對同一漏洞的攻擊可以很方便地實(shí)施重放。為此,我們需要構(gòu)建一個(gè)全新的模型來滿足這些要求。

    針對Web應(yīng)用的攻擊從本質(zhì)上來說就是發(fā)送一個(gè)個(gè)經(jīng)過精心構(gòu)造的http請求,因此我們可以將一次完整的針對Web應(yīng)用程序的攻擊抽象為一個(gè)模型。模型劃分為兩部分:攻擊模式和攻擊向量。攻擊模式指的是發(fā)起攻擊的http請求模式,它定義了http請求的順序、請求路徑、完成請求所需的合法變量,及攻擊數(shù)據(jù)的輸入點(diǎn)。攻擊向量指的是在該次攻擊中輸入的危險(xiǎn)數(shù)據(jù),通過這些輸入可以對目標(biāo)造成不同的攻擊效果,此外,攻擊向量還定義了捕獲響應(yīng)數(shù)據(jù)的方式,因此可以根據(jù)不同的輸入攻擊數(shù)據(jù)在不同的響應(yīng)中獲取相應(yīng)的攻擊結(jié)果。

    這種模塊化的Web應(yīng)用攻擊模型實(shí)現(xiàn)了“攻擊模式”與“攻擊向量”的分離,將二者變?yōu)閮蓚€(gè)獨(dú)立的模塊。在實(shí)際滲透測試過程中,攻擊向量即向服務(wù)端注入的惡意代碼,它往往是可以重用的,而攻擊模式則根據(jù)目標(biāo)自身的特點(diǎn)會有所變化。通過對兩個(gè)模塊的自由定制與組合,可以很方便地開發(fā)出針對特定Web應(yīng)用程序漏洞的EXP(漏洞利用程序)與POC(漏洞證明)。

    圖1 模塊化Web應(yīng)用攻擊模型

    3 模塊化Web應(yīng)用程序漏洞利用框架的實(shí)現(xiàn)

    3.1 整體構(gòu)架

    為了將上述模型應(yīng)用于實(shí)際,我們需要開發(fā)一個(gè)應(yīng)用程序,實(shí)現(xiàn)一個(gè)基于模塊化設(shè)計(jì)的Web應(yīng)用程序漏洞利用框架。該框架分為主程序和拓展模塊??梢詷?gòu)建針對Web應(yīng)用程序的攻擊模式與攻擊向量,通過將特定的攻擊模式與攻擊向量組合,即可以對目標(biāo)應(yīng)用發(fā)起定制化攻擊。

    主程序應(yīng)包含完成底層網(wǎng)絡(luò)通信所需的所有功能,可以構(gòu)造任意Http請求以完成攻擊,所有核心功能均在主程序中定義完成以供各個(gè)模塊調(diào)用。

    所有模塊應(yīng)該是可輕易拓展的,模塊均有自己的接口規(guī)范,它們可以調(diào)用主程序中的相關(guān)函數(shù),模塊構(gòu)建完成后不需經(jīng)過編譯即可直接在主程序中加載。

    在程序執(zhí)行過程中,主程序首先載入一個(gè)攻擊模式,同時(shí)聲明需要攻擊的目標(biāo)站點(diǎn)主機(jī)地址、端口號、超時(shí)時(shí)間等。在攻擊模式中,定義了實(shí)施該攻擊所需發(fā)送的Http請求數(shù)量、請求順序、及各個(gè)請求的詳細(xì)請求內(nèi)容(包括請求頭,請求體),此外還在請求內(nèi)容中定義了插入攻擊向量的位置。

    之后,主程序載入一個(gè)適應(yīng)該攻擊模式的攻擊向量,這個(gè)攻擊向量會自動將攻擊模式Http請求內(nèi)容中指定的點(diǎn)替換為攻擊用的惡意代碼,然后按照攻擊模式的設(shè)計(jì)對目標(biāo)站點(diǎn)發(fā)起請求進(jìn)行攻擊,在一輪攻擊結(jié)束后,目標(biāo)站點(diǎn)會返回一個(gè)或多個(gè)Http響應(yīng),攻擊向量會根據(jù)預(yù)先設(shè)定的規(guī)則,從這一個(gè)或多個(gè)響應(yīng)中捕獲符合規(guī)則的字符串,從中提取所需結(jié)果。

    圖2 程序執(zhí)行流程

    3.2 可拓展性框架

    在基于模塊化設(shè)計(jì)的Web應(yīng)用程序漏洞利用框架中,應(yīng)選用嵌入式語言或是腳本語言進(jìn)行拓展模塊的開發(fā),所有核心功能已在主程序中注冊并提供相應(yīng)的接口供拓展模塊調(diào)用,同時(shí)可以建立一些公共模塊提供如響應(yīng)字符串的處理等常用的輔助性功能。自定義模塊載入這些公共模塊后亦可直接調(diào)用。因而自定義模塊在實(shí)現(xiàn)相關(guān)功能時(shí)只需編寫簡單的流程控制代碼即可。

    3.3 模塊化Web滲透測試

    利用該框架豐富的可拓展性和自由的定制功能,可以進(jìn)行實(shí)現(xiàn)各類的Web滲透攻擊。

    (1)定制化攻擊

    在滲透測試中,當(dāng)傳統(tǒng)自動化工具針對某些Web系統(tǒng)漏洞無法進(jìn)行自動利用時(shí),可以通過框架進(jìn)行定制化攻擊。

    首先通過手工或其他手段確定該漏洞所在頁面、數(shù)據(jù)輸入點(diǎn),請求方式等等。然后針對該漏洞情況選擇一個(gè)適用的攻擊模式或是重新編寫一個(gè)新的攻擊模式,載入可用的攻擊向量,針對該漏洞發(fā)起攻擊。

    (2)通用程序漏洞EXP開發(fā)

    當(dāng)某個(gè)通用程序出現(xiàn)漏洞時(shí),針對該漏洞的具體情況編寫對應(yīng)的攻擊模式與攻擊向量,并將這兩個(gè)模塊關(guān)聯(lián),這便形成了一個(gè)EXP。在今后的測試中,如果發(fā)現(xiàn)對應(yīng)的通用程序,便可以直接載入相應(yīng)的模塊進(jìn)行攻擊。而針對互聯(lián)網(wǎng)上常見的通用程序漏洞可以在編寫對應(yīng)EXP后形成漏洞庫,方便安全人員進(jìn)行研究及完成滲透測試任務(wù)。

    (3)拓展功能

    由于本框架的開放性與高度自由的定制功能,可以利用它實(shí)現(xiàn)各類拓展性功能,例如通過靈活利用可定制的兩個(gè)模塊,可以自行實(shí)現(xiàn)漏洞掃描功能。在需要對某個(gè)目標(biāo)站點(diǎn)進(jìn)行掃描時(shí),先編寫使用與該站點(diǎn)的攻擊模式,然后將攻擊向量中的惡意代碼替換為一組可能存在漏洞的檢測代碼,通過循環(huán)控制對目標(biāo)站點(diǎn)進(jìn)行Fuzzing,檢測可能存在的漏洞??蚣鼙旧韮H封裝了發(fā)起Http請求的相關(guān)函數(shù),通過拓展模塊可以定制請求從而實(shí)現(xiàn)各種拓展功能。應(yīng)用程序本身只是提供了一個(gè)框架,通過用戶的定制模塊可以實(shí)現(xiàn)各種可能性。

    3.4 應(yīng)用前景

    目前,由于各類傳統(tǒng)自動化工具應(yīng)用受限,基于模塊化設(shè)計(jì)的Web應(yīng)用程序漏洞利用框架有著廣泛的應(yīng)用前景。該框架通過高度定制化的模塊實(shí)現(xiàn)了安全人員對Web滲透測試全過程的精確控制,且核心功能的高度集成使得安全人員可以毫不費(fèi)力地完成給類復(fù)雜的定制化攻擊。

    通過該框架可以輕松建立起常用Web通用程序的漏洞庫,從而簡化針對通用程序的漏洞利用過程。同時(shí),在各種開放式漏洞提交平臺如雨后春筍般出現(xiàn)的今天,該框架的可以輕松構(gòu)建各類Web平臺漏洞的POC,促進(jìn)白帽社區(qū)整體發(fā)展。

    參考文獻(xiàn):

    [1]Sutton M,Greene A,Amini P,et al.強(qiáng)制性安全漏洞發(fā)掘[J].2009.

    [2]張亮,朱磊明,王康.一種基于Web漏洞威脅模型的網(wǎng)站安全分析技術(shù)[J].微型電腦應(yīng)用,2008(05):56-58.

    [3]徐玲.WebFuzz的Web軟件漏洞測試[J].軟件導(dǎo)刊,2012(08).

    [4]陳春霞,黃皓.攻擊模型的分析與研究[J].計(jì)算機(jī)應(yīng)用研究,2005(07):115-118.

    作者簡介:吳羽翔(1993-),男,江西南昌人,2011級網(wǎng)絡(luò)安全與執(zhí)法專業(yè)本科生,主要研究方向:web開發(fā)與web安全。

    作者單位:中國人民公安大學(xué) 網(wǎng)絡(luò)安全保衛(wèi)學(xué)院,北京 102623

    澄城县| 石林| 哈尔滨市| 乌拉特中旗| 永丰县| 原阳县| 余江县| 武义县| 依安县| 开封县| 清河县| 晋州市| 和田市| 威信县| 牟定县| 昭通市| 锡林郭勒盟| 四子王旗| 黎城县| 陇南市| 金昌市| 贵港市| 望城县| 长兴县| 景宁| 自治县| 沂水县| 阿拉善左旗| 阳春市| 太仓市| 镇赉县| 松潘县| 杭锦后旗| 唐河县| 安平县| 蓬莱市| 旬阳县| 长兴县| 拜泉县| 浦江县| 密山市|