Web安全技術(shù) 課件 7 文件包含攻擊_第1頁
Web安全技術(shù) 課件 7 文件包含攻擊_第2頁
Web安全技術(shù) 課件 7 文件包含攻擊_第3頁
Web安全技術(shù) 課件 7 文件包含攻擊_第4頁
Web安全技術(shù) 課件 7 文件包含攻擊_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

第7章文件包含攻擊01服務(wù)器的文件包含功能02文件包含漏洞的原理03文件包含漏洞利用方式04防護手段及繞過方式目錄CONTENTS服務(wù)器的文件包含功能文件包含PHP中的文件包含功能

在編寫含有大量交互功能的站點時,為了實現(xiàn)單一文件在不同頁面的重復(fù)使用,通常利用文件包含的方式,將本地可被復(fù)用的文件利用包含函數(shù)在當(dāng)前頁面執(zhí)行。

例如服務(wù)器上有一個文件1.txt,我們利用文件包含功能,可以把該文件執(zhí)行(打開)。服務(wù)器的文件包含功能文件包含PHP中的文件包含功能根據(jù)包含的內(nèi)容來源,可以分為本地文件包含和遠程文件包含。要想實現(xiàn)文件包含功能,在PHP服務(wù)器的配置文件(php.ini)中還要開啟allow_url_include和allow_url_fopen(遠程)選項。服務(wù)器的文件包含功能文件包含服務(wù)器端功能代碼

在PHP環(huán)境下,可利用include、require、include_once、require_once函數(shù)調(diào)用文件,實現(xiàn)文件包含功能。一般情況下,均會利用include實現(xiàn)對配置、通用函數(shù)的加載,實現(xiàn)代碼復(fù)用,并且可使站點的結(jié)構(gòu)非常清晰。

我們通過一個簡單的程序來實現(xiàn)文件包含的效果。代碼如下:<?php

$file=$_GET[“file”];

if($file)

{include($file);}?>01服務(wù)器的文件包含功能02文件包含漏洞的原理03文件包含漏洞利用方式04防護手段及繞過方式目錄CONTENTS文件包含漏洞的原理文件包含

文件包含漏洞是指當(dāng)PHP函數(shù)引入文件時,沒有合理校驗傳入的文件名,從而操作了預(yù)想之外的文件,導(dǎo)致意外的文件泄漏甚至惡意的代碼被執(zhí)行。例如我們之前上傳了木馬,就可以通過這種方式去執(zhí)行木馬。文件包含漏洞的原理文件包含

攻擊者要想成功利用文件包含漏洞進行攻擊,必須滿足以下兩個條件:Web應(yīng)用采用include()等文件包含函數(shù),并且需要包含的文件路徑是通過用戶傳輸參數(shù)的方式引入。用戶能夠控制包含文件的參數(shù),且被包含的文件路徑可被當(dāng)前頁面訪問。01服務(wù)器的文件包含功能02文件包含漏洞的原理03文件包含漏洞利用方式04防護手段及繞過方式目錄CONTENTS文件包含漏洞利用方式文件包含

如果用戶上傳的文件內(nèi)容中包含PHP代碼,但無法直接執(zhí)行,假設(shè)存在包含漏洞,那么就可利用包含漏洞將用戶上傳的PHP代碼由包含函數(shù)加載,進而實現(xiàn)代碼的執(zhí)行。

但這種情況下漏洞能否利用成功,還取決于文件上傳功能的設(shè)計:攻擊者需要知道上傳文件存放的物理位置攻擊者對上傳文件所在的目錄有執(zhí)行權(quán)限兩個條件缺一不可。一旦條件滿足,則會帶來非常大的安全問題。例如木馬文件被執(zhí)行,則攻擊者就能獲取站點的webshell。上傳文件包含文件包含漏洞利用方式文件包含攻擊者可以向Web日志中插入PHP代碼,通過文件包含漏洞來執(zhí)行包含在Web日志中的PHP代碼。通過各種方式獲取日志文件的位置。由于access.log和error.log過大,包含一個這么大的文件的PHP進程可能會卡死。一般網(wǎng)站每天會生成一個新的日志文件,因此,在站點訪問量較少時進行攻擊相對來說容易成功。在URL中插入執(zhí)行代碼,將其記錄進日志文件。為防止寫入的代碼被瀏覽器進行URL轉(zhuǎn)義,可以使用Burpsuite抓包修改。在URL中執(zhí)行文件包含,包含的文件是日志文件,日志中的代碼即可被執(zhí)行。請觀看視頻:日志文件包含日志文件包含文件包含漏洞利用方式文件包含操作系統(tǒng)中敏感信息非常多,可以利用文件包含漏洞直接讀取這些敏感信息,為后續(xù)的滲透提供便利。常見的敏感信息路徑如下:Windows系統(tǒng):C:\boot.ini//查看系統(tǒng)版本C:\Windows\System32\inetsrv\metaBase.xml//IIS配置文件C:\Windows\repair\sam//存儲Windows系統(tǒng)初次安裝的密碼C:\ProgramFiles\mysql\my.ini//MySQL配置信息Linux系統(tǒng):/etc/passwd//用戶賬戶信息/etc/httpd/conf/httpd.conf//Apache配置文件/etc/my.conf//MySQL配置文件敏感文件包含文件包含漏洞利用方式文件包含利用方式包含已上傳的木馬包含被寫入木馬的日志文件包含敏感文件包含臨時文件通過別的手段上傳木馬成功,但無法執(zhí)行,則可通過包含的形式調(diào)用木馬,但須注意獲得木馬的絕對路徑Error_log寫馬access_log寫馬偽造httpbasic認證失敗,寫入報錯文件,需注意密碼以base64編碼形式發(fā)送,且密碼為一句話木馬以正常方式訪問頁面,其中需添加一句話木馬,但須注意access.log文件可能過大導(dǎo)致讀取失敗系統(tǒng)文件配置文件Passwd、shadows、environ等系統(tǒng)文件,但需根據(jù)當(dāng)前中間件權(quán)限判定是否可讀取包含httpd、conf、php、ini等配置信息較為極端情況,多數(shù)為審代碼方可發(fā)現(xiàn)的漏洞01服務(wù)器的文件包含功能02文件包含漏洞的原理03文件包含漏洞利用方式04防護手段及繞過方式目錄CONTENTS防護手段及繞過方式文件包含文件包含漏洞在攻擊方面會有兩個關(guān)注點:包含目標(biāo)文件內(nèi)容合法性以及包含文件的路徑。針對文件內(nèi)容合法性,更多的是要在各類上傳及文件接口上做好對應(yīng)的防護。在文件包含漏洞的防護方面,更多的是針對包含文件的過程進行防護,防護手段主要分為對包含目標(biāo)的參數(shù)過濾和中間件級安全配置兩個方面。防護手段及繞過方式文件包含

包含文件名驗證是指對可包含文件名設(shè)置黑白名單、文件后綴名固定等,效果非常類似于文件上傳攻擊對文件后綴名的防護方式,比如只允許后綴為.jpg的文件包含等。針對文件名的防護方式思路非常清晰,即嚴格限定文件類型。文件名驗證防護手段及繞過方式文件包含1.防護思路

在針對文件包含攻擊的防護上,首先需要針對文件名進行驗證,最有效的方式是嚴格限定文件名的合法性??刹扇〉姆椒ㄖ饕獮椋何募缶Y名固定:在包含的文件名后加固定的后綴,期望文件按預(yù)期目標(biāo)解析文件名過濾:可以用白名單或黑名單,限定包含的文件名。文件名驗證防護手段及繞過方式文件包含2.防護代碼文件后綴名固定,以強制文件后綴名為”.html”為例,參考代碼如下:<?php

$file=$_GET[‘page’];

if($file)

{

include(“”.$_GET[‘page’].”html”);

}?>文件名驗證防護手段及繞過方式文件包含2.防護代碼文件名過濾,對傳入的文件名后綴進行過濾,參考代碼如下:<?php

$filename=strrchr($name,‘.’);

switch($filename){case‘.jpg’:

case‘.png’:

include‘$name’;

break;

default:

echo“無效文件,請重新選擇”;

}?>文件名驗證防護手段及繞過方式文件包含3.繞過方式繞過文件名后綴

攻擊者可以在文件名后放一個空字節(jié)的編碼,從而繞過這樣的文件類型的檢查。例如,對于“../../../../boot.ini%00.jpg”,Web應(yīng)用程序使用的API會允許字符串中包含空字符,當(dāng)實際獲取文件名時,則由系統(tǒng)的API直接截斷,而解析為“../../../../boot.ini”,這是利用PHP5.3.4之前的%00截斷特定實現(xiàn)的,在上傳攻擊中也有相關(guān)利用措施。文件名驗證防護手段及繞過方式文件包含3.繞過方式通過目錄長度限制截斷

通過目錄長度限制讓系統(tǒng)舍棄固定的后綴名。Windows下可利用256位截斷,Linux下則需要4096位截斷。例如:/filein.php?file=phpinfo.php/././././././/.txt文件名驗證防護手段及繞過方式文件包含

在做好針對文件名的防護后,會發(fā)現(xiàn)仍存在一定的安全隱患。因此,后續(xù)思路是要針對包含文件的目錄進行合法性檢驗,也就是對包含的文件路徑進行嚴格的限制。1.防護思路

針對文件包含攻擊防護,關(guān)鍵點在于如何限制用戶直接針對文件路徑進行修改,因此,防護手段只有兩種:目錄限制,在用戶提交的變量前增加固定路徑,限制用戶可調(diào)用的目錄范圍。目錄回退符過濾,避免回退符生效導(dǎo)致路徑變化路徑限制防護手段及繞過方式文件包含2.防護代碼目錄限制,可設(shè)定只允許包含的文件目錄。參考代碼如下:<?php

$file=$_GET[‘page’];

if($file)

{

include‘/var/www/html’.$file;

}?>路徑限制防護手段及繞過方式文件包含2.防護代碼目錄回退符過濾,目錄回退符常用”/”、”.”等符號實現(xiàn)。因此,對用戶輸入的參數(shù)中的特殊字符進行過濾,即可避免出現(xiàn)目錄回退符的問題。參考代碼如下:路徑限制<?phpfunctionfilter($str)

{$str=str_replace(“..”,””,$str);

$str=str_replace(“.”,””,$str);$str=str_replace(“/”,””,$str);$str=str_replace(“\”,””,$str);return$str;

}$file=$_GET[‘page’];

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論