1. 程式人生 > >Web安全_檔案包含(原理、分類、DVWA實驗)

Web安全_檔案包含(原理、分類、DVWA實驗)

一、原理

  • 程式語言中設計了可以在某個程式碼中包含其他已經寫好或者可以供其他程式碼呼叫的檔案,如呼叫一些定義好的類或者函式。而正式因為可以包含其他檔案從而有可能會產生檔案包含漏洞。
  • 大多數Web語言都可以使用檔案包含操作,由於PHP語言的檔案包含功能強大因此也容易出現檔案包含漏洞。況且目前大部分網站由PHP開發,所以著重先研究PHP檔案包含漏洞。

二、分類及實驗

2.1本地檔案包含 Local File Include (LFI)

2.1.1 原理:本地檔案包含故名包含的檔案在本伺服器
2.1.2 DVWA實驗(訪問本地的php程式碼檔案和非php程式碼檔案、訪問本地敏感檔案):

  • 首先準備兩個txt檔案
    我這裡準備的一個為info.txt另一個為demo.txt,info.txt內寫入php程式碼<?php phpinfo();?>進行測試,demo.txt隨便寫一些文字即可。然後將其上傳到DVWA靶機上,具體可參見我之前寫過的DVWA檔案上傳實驗DVWA檔案上傳
  • 位址列中訪問info.txt檔案
    由於我們知道上傳的具體路徑,所以在將路徑資訊傳入到位址列中的page引數後,然後進行訪問。
    在這裡插入圖片描述
    可以發現,txt檔案中的php程式碼被執行顯示出php資訊
  • 位址列中訪問demo.txt檔案
    步驟同上一步,然後將檔案改為demo.txt
    在這裡插入圖片描述
    可以發現,由於檔案內的內容不是php程式碼從而將檔案的內容完整暴露出來。

總結:只要檔案內容符合PHP語法規範則任何的檔案字尾名都可以被解析;若檔案內容包含非PHP語法規範原始檔時,將會暴露其原始碼

  • 訪問本地敏感檔案
    在這裡插入圖片描述
    在這裡插入圖片描述

2.2遠端檔案包含 Remote File Include (RFI)

2.2.1 原理:遠端檔案包含故名包含的檔案不在本地伺服器,而需要遠端訪問其他伺服器
2.1.2 DVWA實驗(訪問遠端伺服器的檔案):
實驗的原理:大體分為三塊,一塊為hacker即我們自己,另一塊為網站伺服器即我們的靶機,第三塊即網站要遠端訪問的伺服器(這裡我們用kali linux開啟apache服務後充當)
當hacker即win7訪問靶機DVWA的檔案包含頁面時,將遠端的地址傳入到page的引數中,然後輸入要檢視的遠端伺服器上的檔案即可。
我們主要遠端訪問兩種,一種為kali linux上上傳好的txt檔案,另一種為shell檔案檢視其是否能執行我們的命令然後檢視敏感資訊。
在這裡插入圖片描述

  • 首先先配置一個遠端伺服器,將虛擬機器kali linux配置為遠端伺服器。開啟kali虛擬機器,需要做的工作是:
    1、開啟終端,輸入service apache2 start開啟apache服務;
    2、開啟apache根目錄,/var/www/html,然後上傳一些供我們遠端訪問的檔案,這裡我上傳了三個,一個txt文件(內容為<?php phpinfo();?>),兩個shell檔案(evashell.php:<?php eval($_GET['cmd']);?>;sysshell.php:<?php system($_REQUEST['cmd']);?>
    3、通過以上操作,我們的遠端伺服器已經配置完成

  • hacker訪問網站然後進行檔案包含
    開啟win7上的瀏覽器並點選到我們的靶機的檔案包含漏洞頁面
    在這裡插入圖片描述
    首先訪問遠端檔案sysshell.php並傳入引數(發現看到了我們apache目錄下所存在的檔案)
    在這裡插入圖片描述
    訪問遠端檔案evashell.php並傳入引數
    在這裡插入圖片描述
    訪問遠端檔案info.txt
    在這裡插入圖片描述

歡迎關注我的微信公眾號獲取更多靶機、工具資源及虛擬機器映象檔案:justbeatrex
在這裡插入圖片描述