版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第三章
滲透測試技術(shù)目錄CONTENTS01Web滲透測試基礎(chǔ)02SQL注入漏洞03文件操作漏洞04本章知識小測Web滲透測試基礎(chǔ)PART.01信息技術(shù)的發(fā)展正在改變?nèi)藗兊纳罘绞胶凸ぷ鞣绞剑逃I(lǐng)域也不例外。教師信息技術(shù)應(yīng)用培訓(xùn)的重要性逐漸被認(rèn)識到,越來越多的學(xué)校開始重視教師的信息技術(shù)能力提升。Web安全現(xiàn)狀Web安全分為以下3個階段:1.0時代,關(guān)注更多的是服務(wù)器端動態(tài)腳本的安全問題。SQL注入攻擊最早出現(xiàn)在1999年,并且很快成為Web安全的頭號大敵,XSS攻擊(跨站腳本攻擊)在2003年引起人們的注意,其危害性和SQL注入攻擊相似。Web2.0時代,XSS、CSRF等攻擊變得更加強(qiáng)大。Web攻擊也從服務(wù)器端轉(zhuǎn)向客戶端再轉(zhuǎn)向?yàn)g覽器和用戶。這時也新興了很多腳本語言,如Python、Ruby、Node.js等,手機(jī)技術(shù)、移動互聯(lián)網(wǎng)的興起也給HTML(超文本標(biāo)記語言)帶來了新的機(jī)遇和挑戰(zhàn)。Web3.0是下一代萬維網(wǎng),旨在使互聯(lián)網(wǎng)更加智能和互聯(lián)。它基于機(jī)器學(xué)習(xí)、自然語言處理和其他先進(jìn)技術(shù)來使Web更加用戶友好和直觀。Web3.0的特點(diǎn)是去中心化,使用了區(qū)塊鏈技術(shù),金融屬性比較強(qiáng)。在Web3.0時代,Web攻擊會更復(fù)雜且橫跨其他的應(yīng)用類型,企業(yè)需要綜合考慮,而不是只考慮原來行業(yè)中比較有特點(diǎn)、比較典型的攻擊類型。Web服務(wù)器工作概述(1)連接過程:Web服務(wù)器與Web瀏覽器之間建立連接,檢查連接是否實(shí)現(xiàn)。用戶可以找到并打開虛擬文件套接字文件,該文件的建立意味著已經(jīng)成功建立連接。(2)請求過程:Web瀏覽器利用socket文件向Web服務(wù)器發(fā)出各種請求。(3)響應(yīng)過程:在請求過程中,發(fā)出的請求先使用HTTP傳輸?shù)絎eb服務(wù)器,再執(zhí)行任務(wù)處理。然后使用HTTP將任務(wù)處理的結(jié)果傳送到網(wǎng)絡(luò)瀏覽器,并且在網(wǎng)絡(luò)瀏覽器上顯示所請求的頁面。(4)關(guān)閉連接:響應(yīng)過程完成后,Web服務(wù)器與Web瀏覽器斷開連接。Web應(yīng)用架構(gòu)B/S架構(gòu)統(tǒng)一了客戶端,無須特殊安裝,擁有Web瀏覽器即可。它將系統(tǒng)功能實(shí)現(xiàn)的核心部分集中到服務(wù)器上,簡化了系統(tǒng)的開發(fā)、維護(hù)和使用。用戶可以先在服務(wù)器上安裝數(shù)據(jù)庫,再使用瀏覽器通過MySQL等數(shù)據(jù)庫來進(jìn)行數(shù)據(jù)交互。C/S是一個典型的兩層架構(gòu),它將任務(wù)合理分配到客戶端和服務(wù)器端,降低了系統(tǒng)的通信開銷,需要安裝客戶端才可以進(jìn)行管理操作。HTTP請求方法方法作用GET請求獲取由Request-URL標(biāo)識的資源,請求參數(shù)在請求行中POST請求服務(wù)器接收在請求中封裝的實(shí)體,并將其作為由Request-Line中Request-URL標(biāo)識的資源的一部分,請求參數(shù)在請求體中HEAD請求獲取由Request-URL標(biāo)識的資源的響應(yīng)頭信息PUT請求服務(wù)器存儲一個資源,并使用Request-URL標(biāo)識DELETE請求服務(wù)器刪除由Request-URL標(biāo)識的資源TRACE請求服務(wù)器回送到的請求信息,主要用于測試或診斷CONNECT保留,將來使用OPTIONS請求查詢服務(wù)器的性能,或者查詢與資源相關(guān)的選項(xiàng)和需求HTTP請求與響應(yīng)HTTP請求是指從客戶端到服務(wù)器端的請求消息,包括在消息首行中對資源的請求方法、資源的標(biāo)識符及使用的協(xié)議。HTTP請求由3部分組成:請求行、請求頭和請求正文。在接收和解釋請求消息后,服務(wù)器會返回一個HTTP響應(yīng)消息。與HTTP請求類似,HTTP響應(yīng)也由3部分組成,分別是狀態(tài)行、響應(yīng)頭信息和響應(yīng)正文。HTTP狀態(tài)碼HTTP狀態(tài)碼的第一個數(shù)字定義了響應(yīng)類別,后面兩位數(shù)字沒有具體分類。第一個數(shù)字有5種取值,具體如下。(1)1xx:指示信息——表示請求已經(jīng)被接受,繼續(xù)處理。(2)2xx:成功——表示請求已經(jīng)被成功接收、理解、接受。(3)3xx:重定向——要完成請求必須進(jìn)行更進(jìn)一步的操作。(4)4xx:客戶端錯誤——請求有語法錯誤或請求無法實(shí)現(xiàn)。(5)5xx:服務(wù)器端錯誤——服務(wù)器未能實(shí)現(xiàn)合法的請求。一些常見狀態(tài)碼、狀態(tài)描述及說明如下。200OK:客戶端請求成功。400BadRequest:客戶端請求有語法錯誤,不能被服務(wù)器理解。401Unauthorized:請求未經(jīng)授權(quán),這個狀態(tài)碼必須和WWW-Authenticate報頭域一起使用。403Forbidden:服務(wù)器收到請求,但是拒絕提供服務(wù)。404NotFound:請求資源不存在。500InternalServerError:服務(wù)器發(fā)生不可預(yù)期的錯誤。503ServerUnavailable:服務(wù)器當(dāng)前不能處理客戶端的請求,一段時間后可能恢復(fù)正常。常見Web攻擊思路及流程——XSS攻擊反射型XSS攻擊DOM-Based型XSS攻擊XSS攻擊是Web應(yīng)用中常見的攻擊手段之一。攻擊者常常在網(wǎng)頁中嵌入了惡意的腳本程序,當(dāng)用戶打開該網(wǎng)頁時,腳本程序就開始在客戶端的瀏覽器后臺執(zhí)行,常用于盜取客戶端的Cookie、用戶名和密碼,下載執(zhí)行病毒的木馬程序,以及獲取客戶端Admin權(quán)限。XSS攻擊分為3種類型:存儲型、反射型和DOM-Based型。存儲型比較簡單,不做贅述,反射型和DOM-Based型工作流程如下所示。常見Web攻擊思路及流程——SQL注入SQL注入就是在用戶輸入的字符串中加入SQL語句。攻擊思路就是在忽略了檢查的程序中注入SQL語句,這些注入的SQL語句會被數(shù)據(jù)庫服務(wù)器誤認(rèn)為是正常的SQL語句而執(zhí)行,攻擊者就可以執(zhí)行計(jì)劃外的命令或訪問未被授權(quán)的數(shù)據(jù)。下面介紹一個簡單案例,SQL注入攻擊流程如下:當(dāng)以用戶名為萬事勝意、密碼為123的用戶身份登錄時,客戶端會把消息發(fā)給服務(wù)端,服務(wù)端會先把消息發(fā)送給數(shù)據(jù)庫,然后在數(shù)據(jù)庫中查詢,正常情況下是要查詢用戶名為萬事勝意且密碼為123的用戶,但如果在用戶名上加入#(萬事勝意#),數(shù)據(jù)庫就會忽略后面的內(nèi)容(在數(shù)據(jù)庫中,#為注釋,數(shù)據(jù)庫會忽略其后面的內(nèi)容),也就變成了查詢用戶名為萬事勝意的用戶,就會顯示登錄成功。此時就完成了SQL注入攻擊。常用Web滲透工具BurpSuite部分重要模塊作用如下所示:Proxy:是一個攔截HTTP/S的代理服務(wù)器,作為一個在瀏覽器和目標(biāo)應(yīng)用程序之間的中間人,允許你攔截、查看、修改在兩個方向上的原始數(shù)據(jù)流。Spider:是一個應(yīng)用智能感受的網(wǎng)絡(luò)爬蟲,它能完整的枚舉應(yīng)用程序的內(nèi)容和功能。Intruder:是一個定制的高度可配置的工具,對web應(yīng)用程序進(jìn)行自動化攻擊,如:枚舉標(biāo)識符,收集有用的數(shù)據(jù),以及使用fuzzing技術(shù)探測常規(guī)漏洞。Repeater:是一個靠手動操作來補(bǔ)發(fā)單獨(dú)的HTTP請求,并分析應(yīng)用程序響應(yīng)的工具。Sequencer:是一個用來分析那些不可預(yù)知的應(yīng)用程序會話令牌和重要數(shù)據(jù)項(xiàng)的隨機(jī)性的工具。Decoder:是一個進(jìn)行手動執(zhí)行或?qū)?yīng)用程序數(shù)據(jù)者智能解碼編碼的工具。常用Web滲透工具SQLMAP使用SQLmap的基本流程及相關(guān)命令如下。(1)找注入點(diǎn)并檢測:sqlmap–u“鏈接”。(2)列出所有數(shù)據(jù)庫的名稱:sqlmap–u“鏈接”--dbs。(3)列出所有表的名稱:sqlmap–u“鏈接”–D數(shù)據(jù)庫--tables。(4)列出指定數(shù)據(jù)庫中表的字段:sqlmap–u“鏈接”–D數(shù)據(jù)庫–T表名--columns。(5)列出指定數(shù)據(jù)庫中表的字段的內(nèi)容:sqlmap–u“鏈接”–D數(shù)據(jù)庫–T表名–C字段--dump。SQL注入漏洞信息技術(shù)的發(fā)展正在改變?nèi)藗兊纳罘绞胶凸ぷ鞣绞?,而教育領(lǐng)域也不例外。教師信息技術(shù)應(yīng)用培訓(xùn)的重要性逐漸被認(rèn)識到,越來越多的學(xué)校開始重視教師的信息技術(shù)能力提升。PART.02SQL注入概念結(jié)構(gòu)化查詢語言(StructuredQueryLanguage,SQL)是一種特殊的編程語言,是數(shù)據(jù)庫中的標(biāo)準(zhǔn)數(shù)據(jù)查詢語言。而SQL注入是一種常見的Web安全漏洞,如果Web應(yīng)用程序?qū)τ脩糨斎霐?shù)據(jù)的合法性沒有進(jìn)行判斷或過濾不嚴(yán)格,攻擊者就可以在Web應(yīng)用程序中事先定義好的查詢語句的結(jié)尾處添加額外的SQL語句(代碼),在管理員不知情的情況下實(shí)現(xiàn)非法操作,以此欺騙數(shù)據(jù)庫服務(wù)器執(zhí)行非授權(quán)的任意查詢,從而進(jìn)一步得到相應(yīng)的數(shù)據(jù)信息。SQL注入漏洞形成的主要原因是在數(shù)據(jù)交互中,前端的數(shù)據(jù)在傳入后臺進(jìn)行處理時,后臺服務(wù)器沒有進(jìn)行嚴(yán)格的判斷,導(dǎo)致其傳入的“數(shù)據(jù)”拼接到SQL語句中后,被當(dāng)作SQL語句的一部分執(zhí)行,從而導(dǎo)致數(shù)據(jù)庫受損(被拖庫、被刪除,甚至整個服務(wù)器全線淪陷),即后臺服務(wù)器接收相關(guān)參數(shù)未經(jīng)過濾直接帶入數(shù)據(jù)庫查詢。SQL注入攻擊流程常見的SQL注入類型有:利用unionselect語句直接查詢的聯(lián)合查詢注入;根據(jù)真假的不同所得到不同的返回結(jié)果進(jìn)行注入的布爾盲注;根據(jù)不同網(wǎng)站的返回時間進(jìn)行注入,使用sleep函數(shù)進(jìn)行注入的時間延時注入;利用報錯函數(shù)所得到網(wǎng)站的報錯結(jié)果進(jìn)行注入的報錯注入;后端能夠同時執(zhí)行多條SQL語句的堆疊注入。一般來說,聯(lián)合查詢注入、報錯注入和堆疊注入耗時最短,布爾盲注耗時會長一些,時間延時注入耗時最長。常見的SQL注入攻擊流程如下。(1)識別目標(biāo):攻擊者首先要確定存在SQL注入漏洞的目標(biāo)應(yīng)用程序。(2)收集信息:攻擊者會通過探測和掃描目標(biāo)應(yīng)用程序,收集有關(guān)數(shù)據(jù)庫結(jié)構(gòu)、數(shù)據(jù)表、字段名稱和應(yīng)用程序的錯誤響應(yīng)等信息。(3)構(gòu)造惡意輸入:攻擊者根據(jù)收集到的信息,構(gòu)造惡意輸入。這些惡意輸入通常是以字符串的形式傳遞給應(yīng)用程序的查詢語句的。(4)注入攻擊:攻擊者將惡意輸入發(fā)送到目標(biāo)應(yīng)用程序的輸入字段,如表單提交的參數(shù)、URL參數(shù)等。攻擊者的目的是使應(yīng)用程序?qū)阂廨斎胱鳛镾QL查詢的一部分。(5)破壞查詢結(jié)構(gòu):攻擊者通過注入惡意的SQL代碼來破壞原始的查詢結(jié)構(gòu)。常見的注入技巧包括使用單引號終止字符串、注釋掉原始查詢、使用布爾邏輯運(yùn)算符繞過驗(yàn)證等。(6)執(zhí)行惡意操作:一旦成功注入惡意SQL代碼,攻擊者就可以執(zhí)行各種惡意操作。這包括但不限于獲取敏感信息、修改數(shù)據(jù)庫內(nèi)容、執(zhí)行操作權(quán)限以外的數(shù)據(jù)庫操作等。(7)數(shù)據(jù)提?。汗粽呖梢岳肧QL注入漏洞來提取敏感信息,如用戶認(rèn)證信息、個人資料、支付信息等。(8)潛在的進(jìn)一步攻擊:攻擊者可能進(jìn)一步探測和攻擊目標(biāo)系統(tǒng),如獲取操作系統(tǒng)權(quán)限、上傳惡意文件等。SQL注入類型根據(jù)參數(shù)類型可以將SQL注入分為數(shù)字型注入和字符型注入。當(dāng)輸入的參數(shù)為整型時,如果存在SQL注入漏洞,就可以認(rèn)為是數(shù)字型注入。例如,“/test.php?id=3”對應(yīng)的SQL語句為“select*fromtablewhereid=3”。字符型注入則正好相反,當(dāng)輸入的參數(shù)被當(dāng)作字符串時,如果存在SQL注入漏洞,就可以認(rèn)為是字符型注入。數(shù)字型注入和字符型注入最大的區(qū)別在于,數(shù)字型注入不需要使用單引號來閉合,而字符型注入一般需要使用單引號來閉合,即看參數(shù)是否被單引號引住。根據(jù)注入手法的不同,可分為聯(lián)合查詢注入、報錯注入、布爾盲注、時間延時注入、HTTP頭注入、寬字節(jié)注入、堆疊注入、二階注入。聯(lián)合查詢注入分析聯(lián)合查詢注入就是利用UNION關(guān)鍵字從數(shù)據(jù)庫的其他表檢索數(shù)據(jù),聯(lián)合查詢會將前后兩次查詢結(jié)果拼在一起。UNION關(guān)鍵字可以追加一條或者多條額外的SELECT查詢,并將結(jié)果追加到原始查詢中。例如,使用“SELECTa,bFROMtable1UNIONSELECTc,dFROMtable2”語句進(jìn)行查詢將返回包含兩列的單個結(jié)果集,其中包含table1的a、b字段和table2的c、d字段。滲透測試人員執(zhí)行聯(lián)合查詢注入攻擊,必須滿足以下兩個要求。(1)各個查詢必須返回相同數(shù)量的列。(2)每列的數(shù)據(jù)類型在各個查詢之間必須兼容。在聯(lián)合查詢注入頁面中,程序先獲取GET參數(shù)ID,將ID拼接到SQL語句中,在數(shù)據(jù)庫中查詢參數(shù)ID隨意的內(nèi)容,再將第一條查詢結(jié)果中的username和address輸出到頁面上。由于是將數(shù)據(jù)輸出到頁面上的,所以可以利用聯(lián)合查詢語句查詢其他數(shù)據(jù)。當(dāng)訪問“id=1unionselect1,2,3”時,執(zhí)行的SQL語句為“select*fromuserswhere'id'=1unionselect1,2,3”。布爾盲注分析布爾盲注的意思就是頁面返回的結(jié)果是布爾型的,通過構(gòu)造SQL判斷語句,查看頁面的返回結(jié)果是否報錯、頁面返回是否正常等來判斷哪些SQL判斷條件是成立的,以此來獲取數(shù)據(jù)庫中的數(shù)據(jù)。布爾盲注的常用函數(shù)如下。Length:返回字符串長度。Substr:截取字符串。Ascii:返回字符的ASCII碼。Sleep:將程序掛起一段時間。if(expr1,expr2,expr3):如果expr1正確,則執(zhí)行expr2,否則執(zhí)行expr3。在布爾盲注頁面中優(yōu)先獲取參數(shù)id,通過pre_match判斷其中是否存在union、sleep、benchmark等危險字符。再將參數(shù)id拼接到SQL語句,在數(shù)據(jù)庫中查詢,如果有結(jié)果,則返回yes,否則返回no。當(dāng)訪問該頁面時,代碼根據(jù)數(shù)據(jù)庫查詢結(jié)果返回yes或no,而不返回數(shù)據(jù)庫中的任何數(shù)據(jù),所以頁面上只會顯示yes或no。SQL注入漏洞解決方案——使用PreparedStatement使用PreparedStatement將SQL語句的解析和執(zhí)行分開,只在執(zhí)行時代入用戶的操作。這樣一來,無論攻擊者提交的參數(shù)怎么變化,數(shù)據(jù)庫都不會執(zhí)行額外的邏輯,也就避免了SQL注入問題。在Java中將解析和執(zhí)行分開的代碼如下圖所示在Java中將解析和執(zhí)行分開的代碼在Java中未將解析和執(zhí)行分開的錯誤案例的代碼SQL注入漏洞解決方案——使用存儲過程用存儲過程來防止SQL注入的原理和使用PreparedStatement類似,都是通過將SQL語句的解析和執(zhí)行分開來實(shí)現(xiàn)防護(hù)的。它們的區(qū)別在于,使用存儲過程防止SQL注入是將解析SQL語句的過程,由數(shù)據(jù)庫驅(qū)動轉(zhuǎn)移到了數(shù)據(jù)庫本身。使用存儲過程的數(shù)據(jù)庫代碼實(shí)現(xiàn)如下圖所示。使用存儲過程的數(shù)據(jù)庫代碼實(shí)現(xiàn)SQL注入漏洞解決方案——驗(yàn)證輸入防護(hù)的核心原則是一切用戶輸入皆不可信。因此,SQL注入的防護(hù)手段和XSS攻擊的防護(hù)手段其實(shí)是相通的,主要的不同點(diǎn)在于,SQL注入攻擊發(fā)生在輸入的時候,因此,開發(fā)者只能在輸入的時候進(jìn)行防護(hù)和驗(yàn)證。大部分?jǐn)?shù)據(jù)庫不提供針對SQL的編碼,因?yàn)檫@樣會改變原有的語義,所以SQL注入沒有編碼的保護(hù)方案。因此,對所有輸入進(jìn)行驗(yàn)證或過濾操作,能夠在很大程度上避免SQL注入。例如,在通過userId參數(shù)獲取Users相關(guān)信息時,userId參數(shù)必然是一個整數(shù)。因此,只需要對userId參數(shù)進(jìn)行整型轉(zhuǎn)化(如Java中的Integer.parseInt、PHP的intval),就可以實(shí)現(xiàn)防護(hù)。在部分場景下,用戶輸入的參數(shù)會比較復(fù)雜,應(yīng)用無法預(yù)判它的格式,這種情況下,應(yīng)用只能通過對部分關(guān)鍵字符進(jìn)行過濾,來避免SQL注入。例如,在MySQL中,需要注意的關(guān)鍵詞有"、%、'、\、_。對驗(yàn)證輸入來說,尤其是在復(fù)雜場景下的驗(yàn)證輸入措施,其防護(hù)效果是最弱的。因此,避免SQL注入的防護(hù)方法,首選的仍然是使用PreparedStatement或存儲過程。文件操作漏洞信息技術(shù)的發(fā)展正在改變?nèi)藗兊纳罘绞胶凸ぷ鞣绞?,而教育領(lǐng)域也不例外。教師信息技術(shù)應(yīng)用培訓(xùn)的重要性逐漸被認(rèn)識到,越來越多的學(xué)校開始重視教師的信息技術(shù)能力提升。PART.03文件操作漏洞的概念文件操作漏洞是Web領(lǐng)域最典型的一類漏洞,其具有任意代碼執(zhí)行的能力,是使一般漏洞變?yōu)閲?yán)重漏洞,甚至getshell的最佳路徑之一。文件操作漏洞結(jié)合其他的漏洞(如SQL注入),往往會有意想不到的效果。文件操作漏洞包括文件包含、文件讀取、文件刪除、文件修改及文件上傳。這幾種文件操作漏洞有一些相似的點(diǎn),但是每種漏洞都有各自的漏洞函數(shù)及利用方式。文件上傳漏洞原理文件上傳漏洞通常是因?yàn)榫W(wǎng)頁在文件傳輸方面有缺陷,導(dǎo)致用戶可能越過本身權(quán)限,向服務(wù)器上傳可執(zhí)行的動態(tài)腳本文件。文件上傳漏洞可以將ASP、PHP等格式的木馬直接上傳到網(wǎng)站目錄中,上傳成功即可立刻得到WebShell權(quán)限,并且不需要任何用戶名和密碼的驗(yàn)證。攻擊者可以得到數(shù)據(jù)庫中的一些敏感信息,如管理員名稱、密碼等。因此,文件上傳漏洞是一種比SQL注入漏洞危害性更大的漏洞。文件上傳漏洞分析右圖的php代碼中,最后的if判斷中將上傳文件的擴(kuò)展名與黑名單進(jìn)行對比。此類代碼在邏輯上首先要明確,不是將擴(kuò)展名與黑名單數(shù)組進(jìn)行對比(擴(kuò)展名可以是PHP3),而是與黑名單中的每個字符串逐個進(jìn)行對比。上傳文件的擴(kuò)展名應(yīng)該作為輸入字符與數(shù)組中的字符進(jìn)行對比,查看數(shù)組中的字符是否與輸入字符有包含關(guān)系。并且黑名單驗(yàn)證不全。各種可解析的擴(kuò)展名,如在C#MVC模式下,在開啟時如果沒有禁用ASPX視圖模式,就可能出現(xiàn)ASP解析黑名單繞過問題。文件下載漏洞原理一些網(wǎng)站需要提供文件查看或下載的功能。如果對用戶查看或下載的文件不做限制,惡意用戶就能夠查看或下載任意文件,包括源文件及敏感文件。當(dāng)網(wǎng)站代碼本身存在讀取文件的函數(shù)調(diào)用且輸出的文件內(nèi)容是任意的文件時,如果用戶下載時讀取文件的路徑是可控的,并且傳遞的文件路徑參數(shù)未校驗(yàn)或校驗(yàn)不嚴(yán)格,就可能存在文件下載漏洞。在滲透測試實(shí)戰(zhàn)中,如果存在文件下載漏洞,就可以下載服務(wù)器上的敏感文件,如腳本代碼、服務(wù)及系統(tǒng)配置文件等,利用這些信息可以進(jìn)一步發(fā)現(xiàn)其他可利用漏洞。文件下載漏洞分析進(jìn)入一個具有文件下載功能的網(wǎng)頁通過F12鍵查看源代碼,發(fā)現(xiàn)存在可控參數(shù)及文件的路徑。因?yàn)檫@是WindowsServer操作系統(tǒng),所以可以嘗試下載配置文件在“?file=../../../../../../../../../../../../Windows\win.ini”中,“../”是返回上級目錄,在這里用多少個“../”都沒有關(guān)系,因?yàn)楦夸浀纳弦患夁€是根目錄。文件包含漏洞原理文件包含漏洞是指網(wǎng)站在展示或運(yùn)行一些頁面時,將部分文件包含進(jìn)去運(yùn)行的行為。這種行為和文件上傳漏洞一樣,都是一種正常操作。但如果沒有對包含的文件進(jìn)行嚴(yán)格的過濾與檢查,就會導(dǎo)致網(wǎng)站包含一些非法的文件運(yùn)行。PHP的文件包含可以直接執(zhí)行包含文件的代碼,包含的文件格式是不受限制的,只要能正常執(zhí)行即可。文件包含又分為本地文件包含(LocalFileInclude)和遠(yuǎn)程文件包含(RemoteFileInclude)。文件包含漏洞分析文件包含漏洞大部分出現(xiàn)在模塊加載、模板加載及Cache調(diào)用的地方,如傳入的模塊名參數(shù),實(shí)際上是直接把這個參數(shù)拼接到了包含文件的路徑中,又如espcms的代碼,傳入的archive參數(shù)就是包含的文件名,如下圖所示。在挖掘文件包含漏洞時可以先跟蹤程序運(yùn)行流程,看看模塊加載時包含的文件是否可控。另外就是直接搜索include、include_once、require和require_once這4個函數(shù)來回溯,看看有沒有可控的變量??梢栽诤瘮?shù)的括號中寫出包含的路徑,也可以直接輸入空格加上路徑。一般這種情況都是本地文件包含,大部分是需要截斷的。文件操作漏洞修復(fù)方案——黑名單基于黑名單過濾的方法常用于客戶端驗(yàn)證文件擴(kuò)展名。(1)客戶端驗(yàn)證:一般都是在網(wǎng)頁上寫一段JS腳本,校驗(yàn)上傳文件的擴(kuò)展名。(2)判斷方式:在瀏覽加載文件,但還未單擊上傳按鈕時彈出對話框,內(nèi)容如“只允許上傳以.jpg/.jpeg/.png為擴(kuò)展名的文件”,而此時并沒有發(fā)送數(shù)據(jù)包。(3)服務(wù)端擴(kuò)展名:明確不允許上傳的文件格式。常見的文件格式有ASP、PHP、JSP、ASPX、CGI、WAR等??赡芾@過的文件格式(與網(wǎng)站搭建平臺和設(shè)置格式有關(guān))有PHP5、PHTML等。文件操作漏洞修復(fù)方案——白名單基于白名單過濾的方法常用于文件上傳漏洞和文件包含漏洞,比基于黑名單過濾的方法更安全。1)文件上傳漏洞客戶端校驗(yàn)文件名:在客戶端使用JS腳本判斷上傳的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《實(shí)驗(yàn)室消毒滅菌》課件
- 《病媒生物控制》課件
- 單位管理制度合并選集人事管理篇
- 《倉庫管理的認(rèn)識》課件
- 單位管理制度分享合集【人事管理篇】十篇
- 單位管理制度范例匯編【人事管理】十篇
- 做情緒的主人 高一上學(xué)期心理健康教育課
- 2024年農(nóng)業(yè)年終工作總結(jié)
- 2024年協(xié)輔警個人總結(jié)
- 《山東膠州秧歌》課件
- 有害生物防制員技能競賽理論考試題庫500題(含答案)
- HIV陽性孕產(chǎn)婦全程管理專家共識2024年版解讀
- 小學(xué)體育跨學(xué)科主題學(xué)習(xí)教學(xué)設(shè)計(jì):小小志愿軍
- 附件2:慢病管理中心評審實(shí)施細(xì)則2024年修訂版
- 《ISO56001-2024創(chuàng)新管理體系 - 要求》之4:“4組織環(huán)境-確定創(chuàng)新管理體系的范圍”解讀和應(yīng)用指導(dǎo)材料(雷澤佳編制-2024)
- 2024-2030年中國散熱產(chǎn)業(yè)運(yùn)營效益及投資前景預(yù)測報告
- 和父親斷絕聯(lián)系協(xié)議書范本
- 2024時事政治考試題庫(100題)
- 2024地理知識競賽試題
- 【新教材】統(tǒng)編版(2024)七年級上冊語文期末復(fù)習(xí)課件129張
- 欽州市浦北縣2022-2023學(xué)年七年級上學(xué)期期末語文試題
評論
0/150
提交評論