【正文】
namespace WebFuzz{ static class Program { /// 應(yīng)用程序的入口 [STAThread] static void Main() { ()。將模糊測試技術(shù)應(yīng)用在軟件的開發(fā)過程中,可以很好地測試開發(fā)出的軟件的健壯性。由此可以得出,將模糊測試技術(shù)應(yīng)用于Web應(yīng)用程序和服務(wù)器漏洞挖掘,可以減少的人工量,能夠有效幫助挖掘網(wǎng)站中隱藏的漏洞。對Web應(yīng)用程序進(jìn)行模糊測試,并不是要對Web應(yīng)用程序或者服務(wù)器發(fā)送正常的請求信息,而是要輸入構(gòu)造的畸形的請求信息,其中可以模糊化的變量可以使任意的請求頭中的信息。打開IE瀏覽器插件Fiddler,然后在鄭州大學(xué)生物工程系主頁的搜索框中再次輸入字符串“aaa”,這個時候IE插件Fiddler便會自動抓取請求信息。在鄭州大學(xué)旅游管理信息學(xué)院主頁的Web應(yīng)用搜索引擎里輸入特殊的字符串”/’\,服務(wù)器會返回如下圖2的正常狀態(tài)的查詢結(jié)果頁面,可以看出,該Web應(yīng)用沒有過濾用戶輸入的特殊的字符”/\’等,將用戶輸入顯示在檢索結(jié)果頁面中,由此推斷該Web應(yīng)用程序中可能存在跨站腳本。sendRequest類的工作可以用一下流程圖35來說明:圖3 5 模糊器發(fā)送數(shù)據(jù)流程圖 接收響應(yīng)當(dāng)響應(yīng)被接收時,WebFuzz通過將請求、原始響應(yīng)、HTML響應(yīng)、主機(jī)名和路徑添加到單獨(dú)的字符串?dāng)?shù)組來將它們進(jìn)行保存。從供給者角度出發(fā),通過模擬一次真實(shí)的攻擊事件對服務(wù)器的業(yè)務(wù)處理進(jìn)行分析,從而實(shí)現(xiàn)漏洞檢測。對發(fā)送給Web服務(wù)器的原始請求有著完整的控制權(quán)。各字段介紹如下:a. 主機(jī)目標(biāo)機(jī)器的名字和IP地址是所需要的一個字段。使用此信息,用戶可以迅速的識別出應(yīng)當(dāng)被進(jìn)一步詳細(xì)研究的那些響應(yīng)。利用跨站腳本進(jìn)行跨站攻擊,一般會有以下幾種危害:a. 獲取其他用戶Cookie中的敏感數(shù)據(jù)b. 屏蔽頁面特定信息c. 偽造頁面信息d. 拒絕服務(wù)攻擊e. 突破外網(wǎng)內(nèi)網(wǎng)不同安全設(shè)置f. 和其他漏洞結(jié)合,修改系統(tǒng)設(shè)置,查看文件系統(tǒng),執(zhí)行系統(tǒng)命令等g.其他 跨站腳本的利用模式針對每一類漏洞不同的特點(diǎn),攻擊者利用上述幾類跨站點(diǎn)腳本漏洞時會有特定的利用模式。跨站腳本的實(shí)質(zhì)是注入的問題,現(xiàn)在并沒有一個單一的,標(biāo)準(zhǔn)的分類方法。)。)。JavaScript 使有能力創(chuàng)建動態(tài)頁面??梢酝ㄟ^ var 語句來聲明 JavaScript 變量。JavaScript 可以將動態(tài)的文本放入 HTML 頁面,可以將 JavaScript 設(shè)置為當(dāng)某事件發(fā)生時才會被執(zhí)行,例如頁面載入完成或者當(dāng)用戶點(diǎn)擊某個 HTML 元素時。這些處理器會監(jiān)視特定的條件或用戶行為,例如鼠標(biāo)單擊或?yàn)g覽器窗口中完成加載某個圖像。body 與 /body 之間的文本是可見的頁面內(nèi)容。HTML文檔包含HTML標(biāo)簽和純文本,是網(wǎng)頁的文字形式??缯灸_本探索研究:不斷總結(jié)Web應(yīng)用程序跨站腳本的形成原理,掌握Web應(yīng)用程序模糊器WebFuzzer發(fā)掘跨站腳洞的工作原理,總結(jié)和其他發(fā)掘工具相比時的優(yōu)勢。事實(shí)證明自動化的模糊測試技術(shù)能夠發(fā)掘Web應(yīng)用程序中隱藏的用其他方法難以發(fā)掘的漏洞。 Web應(yīng)用程序漏洞Web應(yīng)用程序(Web Application)是指用戶界面駐留在Web瀏覽器中的任何應(yīng)用程序,包括內(nèi)容管理系統(tǒng)(CMS)、wiki百科、門戶網(wǎng)站、電子公告板、論壇等。怎么進(jìn)行Web應(yīng)用程序安全測試,怎么進(jìn)行Web應(yīng)用程序漏洞挖掘,已經(jīng)成為Web應(yīng)用程序開發(fā)者和Web應(yīng)用程序安全維護(hù)者關(guān)心的重要議題。觸發(fā)跨站腳本的原因分為以下兩種:通過閉合標(biāo)簽觸發(fā)跨站腳本,通過標(biāo)簽屬性傳遞值觸發(fā)跨站腳本。再者,重點(diǎn)分析了模糊測試原理,提出了模糊測試功能需求分析和框架設(shè)計,研究了實(shí)現(xiàn)模糊測試技術(shù)的核心算法。企業(yè)借助互聯(lián)網(wǎng)進(jìn)行商務(wù)活動的價值日益凸顯,企業(yè)利用互聯(lián)網(wǎng)的積極性不斷提高,企業(yè)在互聯(lián)網(wǎng)上的投入也不斷提高,包括建站、交易平臺入駐、網(wǎng)絡(luò)營銷等。每種路徑方法都代表了一種風(fēng)險。這款工具具有良好的可擴(kuò)展性,它提供了一個可以而且應(yīng)當(dāng)被進(jìn)一步創(chuàng)建的架構(gòu)。而在以往的報告中,跨站腳本則一直穩(wěn)居第一。某寫HTML元素沒有結(jié)束標(biāo)簽。屬性提供了有關(guān) HTML 元素的更多的信息。支持 JavaScript 的瀏覽器支持 a 標(biāo)簽中的一個特殊的 mouse over事件處理器 被稱為 onmouseover 來完成這項工作:a href=/ onmouseover=alert(39。JavaScript 可被用來創(chuàng)建 cookies,JavaScript 可被用來存儲和取回位于訪問者的計算機(jī)中的信息。確認(rèn)框:確認(rèn)框用于使用戶可以驗(yàn)證或者接受某些信息。列舉一些JavaScript事件如下:鼠標(biāo)點(diǎn)擊;頁面或圖像載入;鼠標(biāo)懸浮于頁面的某個熱點(diǎn)之上;在表單中選取輸入框;確認(rèn)表單;鍵盤按鍵等。這樣就產(chǎn)生了跨站腳本。XSS39。如Web客戶端提供的HTTP查詢參數(shù)或者提供的HTML表單未被正確的審核卻被立即使用時。持久型跨站腳本的典型利用模式如下:a.Bob擁有一個Web站點(diǎn),這站點(diǎn)允許用戶發(fā)布信息,同時瀏覽已發(fā)布的信息;b.Mallory注意到Bob的站點(diǎn)中存在存儲型跨站腳本;c.Mallory發(fā)布一個熱點(diǎn)信息,誘導(dǎo)其它用戶點(diǎn)擊閱讀;d.大量用戶在瀏覽此信息時,其會話cookies或者其它證書在不知不覺中被Mallory盜走;e.Mallory以其它用戶的身份登錄站點(diǎn),繼續(xù)發(fā)布惡意信息。 Host頭信息:該頭信息定義了為被請求的Web頁提供服務(wù)的主機(jī)和端口。同主機(jī)名一樣,端口字段也是告訴WebFuzz向何處發(fā)送請求,同時,它也不是一個可以進(jìn)行模糊測試的字段。的工具WebFuzz需要將所有的響應(yīng)結(jié)果捕獲并將其以原始格式保存。 生成請求在發(fā)送一個請求之前,必須要首先確定發(fā)送的內(nèi)容。關(guān)于模糊器的代碼部分,將在附錄B中全部列舉出來。td align=left background=images/ 您所要搜索的關(guān)鍵字是 font color=red ”/’\ /font,共搜索到 font color=red0/font條記錄!/td分析上述源代碼:td 標(biāo)簽定義 HTML 表格中的標(biāo)準(zhǔn)單元格;align屬性表示的是顯示的數(shù)據(jù)左對齊;background的屬性值表示背景圖片的地址;font 標(biāo)簽規(guī)定文本的字體外觀、字體尺寸和字體顏色,上述源代碼表示用戶提交的查詢字符串”/’\顯示為紅色。圖4 6 Fiddler抓取的請求信息“aaa”后返回頁面的請求信息。點(diǎn)擊第八條測試語句,顯示的HTML如下圖415所示:圖4 15 顯示的HTML頁面從返回的信息中可以發(fā)現(xiàn),此處存在跨站腳本,第八條測試語句觸發(fā)了跨站腳本,使得編輯框中顯示了HTML源代碼中的信息“”size=30”。通過本次論文的研究,得出了一些結(jié)論,特闡述如下。利用模糊測試技術(shù),還可以建立起具有自己特色的有效的安全測試系統(tǒng),不單可以測試自己開發(fā)的應(yīng)用系統(tǒng),還可以商業(yè)化,測試商業(yè)公司開發(fā)的軟件系統(tǒng)等。 //從此實(shí)例檢索子字符串。沒有同一實(shí)驗(yàn)室的同學(xué)的幫助,的畢業(yè)設(shè)計將會完成的非常困難??梢缘玫揭韵陆Y(jié)論:當(dāng)對一種安全漏洞應(yīng)用模糊測試技術(shù)時,首先要做的是對漏洞本身有深刻的理解,其次是要對模糊測試技術(shù)本身理論知識有深刻的理解,針對不同的安全漏洞,在具體設(shè)計模糊器的時候,使用到得具體技術(shù)是有所不同的,從編程語言的選擇,到算法的設(shè)計,都是需要掌握的知識。比如說上面鄭州大學(xué)生物工程系主頁的一個跨站腳本就是這樣,白盒分析是很難分析出來的。在本測試用例中,從Fiddler截獲的信息中可以看到目標(biāo)主機(jī)域名為2,。還是舉出鄭州大學(xué)網(wǎng)站上的一個例子,這個例子還上個例子有所類似,但是更多的是不同,而且這個例子更能體現(xiàn)出自動化模糊測試的優(yōu)勢。非持久型跨站腳本在Web應(yīng)用程序中存在廣泛,但是危害相對較小,但是這種漏洞也不容忽視,攻擊者可以巧妙利用非持久型跨站腳本達(dá)到攻擊者的目的。對來自于靜態(tài)列表(SQL,XSS和Method)的那些模糊變量,創(chuàng)建了一個新的Read()類,并且將包含模糊變量的ASCII文本文件的名字傳遞給構(gòu)造器Generate()。一般情況下,只需要檢測服務(wù)器響應(yīng)信息中是否存在上述字段,就可以大致判斷是否存漏洞。有意將請求的所有組成部分保持在一個單獨(dú)的可寫的文本字段中,因?yàn)橄MK端用戶能夠控制請求的各個方面。Fuzzing技術(shù)在大多數(shù)情況下用于發(fā)現(xiàn)安全漏洞,從而增強(qiáng)應(yīng)用程序的可靠性。這些狀態(tài)碼可以提供線索以確定哪些模糊請求需要進(jìn)一步加以研究。這種類型的跨站腳本的執(zhí)行過程和非持久型的執(zhí)行過程類似,但是它的危害更加嚴(yán)重,因?yàn)楣粽叩哪_本自動提交,而不需要引誘目標(biāo)受害人點(diǎn)擊攻擊者的第三方網(wǎng)站。那就是當(dāng)JavaScript的使用者同時開啟多個瀏覽器視窗時,在有些時候,網(wǎng)頁里面的片段程式碼被允許從另一個網(wǎng)頁取出,所以某些惡意網(wǎng)站可以用這個方法來嘗試竊取機(jī)密信息。于是就得出了一個經(jīng)典的XSS示例:img src=javascript:alert(39。a.閉合標(biāo)簽瀏覽的網(wǎng)頁全部都是基于超文本標(biāo)記語言HTML創(chuàng)建的HTML文檔。當(dāng)提示框出現(xiàn)后,用戶需要輸入某個值,然后點(diǎn)擊確認(rèn)或取消按鈕才能繼續(xù)操縱。當(dāng)頁面載入時,會執(zhí)行位于body部分的JavaScript;當(dāng)被調(diào)用時,位于head部分的JavaScript才會被執(zhí)行,也就是將腳本內(nèi)容或者成為函數(shù)寫到head部分,在載入頁面的時候會先將腳本內(nèi)容載入,然后再在后面的執(zhí)行過程中調(diào)用腳本內(nèi)容,Body部分的腳本內(nèi)容會在載入頁面的時候就執(zhí)行;還有一種是訪問外部腳本,可以把 .js 文件放到網(wǎng)站目錄中通常存放腳本的子目錄中,這樣更容易管理和維護(hù)。JavaScript 由數(shù)行可執(zhí)行計算機(jī)代碼組成。定義屬性時要注意:始終為屬性值加引號,屬性值應(yīng)該始終被包括在引號內(nèi)。絕大多數(shù)文檔頭部包含的數(shù)據(jù)都不會真正作為內(nèi)容顯示給讀者。截止到2007年,賽門鐵克公司所記錄的安全記錄中有80%為跨站腳本,它的影響范圍可以從一個小小的滋擾到一個重大的安全風(fēng)險。并在此基礎(chǔ)上進(jìn)一步理解和總結(jié)跨站腳本成因。最初用來測試操作系統(tǒng)及其上應(yīng)用軟件的健壯性,后來被應(yīng)用于漏洞挖掘中。這對計算機(jī)通信技術(shù)的發(fā)展來說是很重要的。 crosssite scripting vulnerability。 畢業(yè)設(shè)計(論文)題目名稱:基于模糊測試的漏洞發(fā)現(xiàn)——跨站腳本模糊測試院系名稱:計算機(jī)學(xué)院班 級:網(wǎng)絡(luò)072班學(xué) 號:200700824214學(xué)生姓名:李宗輝指導(dǎo)教師:李向東 2011年 06月? III ?論文編號:(200700824214) 基于模糊測試的漏洞發(fā)現(xiàn)——跨站腳本模糊測試Vulnerability Discovery based on fuzz testing——XSS fuzz testing院系名稱:計算機(jī)學(xué)院班 級:網(wǎng)絡(luò)072班學(xué) 號:200700824214學(xué)生姓名:李宗輝指導(dǎo)教師:李向東 2011年 06月中文摘要跨站腳本漏洞是Web應(yīng)用程序中最常見的一種漏洞,廣泛存在于Web應(yīng)用程序和服務(wù)器中,很多計算機(jī)病毒、蠕蟲等都是利用了跨站腳本,其危害性甚大。關(guān)鍵詞: Web應(yīng)用程序; 跨站腳本; 模糊測試技術(shù); 模糊器; WebFuzzAbstractCrosssite scripting vulnerability is the most mon web applications and servers vulnerability, which widely exists in the internet. Many puter viruses and worms are based on crosssite scripts. And the crosssite scripts’ harm is very serious. So how to explore crosssite scripting vulnerabilities has been the web application developers’ important concern. The main work what I have done in this paper is the following research:First, what I have done is analyzing the causes of crosssite scripting vulnerability. For this, I mainly focus on the HTML, JavaScript knowledge. And as a result, I divide the reasons into the following two situations: triggered by closing tags, or triggered by passing tags’ property value. And also I find that crosssite scripting vulnerability can be divided into two types: Reflected XSS and Stored XSS. Second, what I have done is using the source code analysis method to explore crosssite scripting vulnerabilities. When I analyze the causes