檔案包含與偽協議

2022-08-02 13:18:13 字數 1473 閱讀 8270

說明: include()函式對檔案字尾名無要求,而對其中的語法有要求,即使字尾名為txt,jpg也會被當做php檔案解析,只要檔案內是形式就可以執行,但是如果不是php語法的形式,即使字尾為php,也無法執行。

用於訪問本地檔案系統的檔案條件:allow_url_fopen: off/on allow_url_include: off/on

​ (引數如圖)

(過濾器如圖)
使用方法舉例:

php://filter/read=string.toupper/resource=

php://filter協議頭 read=讀取形式 這裡的string.toupper 是將讀出來的字串大寫形式呈現(可以多種形式重疊 中間以「|」鏈結) resource 接物件

php://filter/write=string.rot13/resource=example.txt」,」hello world」

(注:關於為什麼我們讀資料的時候很多時候用base64編碼後再去轉碼,假如想string.toupper這樣的讀取方式,結果輸出的其實是執行後的**,而不是php原始碼,所以我們要加密後再解密去看原始碼)

php://input

php://input可以利用post方式傳入命令執行,具體做法是將要執行的php**直接解除安裝post中提交

phar偽協議(和其類似的壓縮包偽協議)

這個引數是就是php解壓縮包的乙個函式 ,不**件字尾是什麼,都會被當成壓縮包來解壓

這就可以讓我們寫shell後壓縮成zip,然後將字尾改成jpg等格式 它一樣會被當做壓縮包

類似的還有zip://,只不過zip://要用#分隔壓縮包和壓縮包裡的內容,並且#要用url編碼%23

data偽協議

data和input偽協議差不多都是可以傳入使用者想要執行的php**

具體做法:

<?php phpinfo(); ?>

<?php phpinfo(); ?>

}

檔案包含與PHP偽協議實戰演練

1 include require 當使用include 函式包含檔案時,只有 執行到 include 函式時才將檔案包含進來,發生錯誤時只給出乙個警告,繼續向下執行。當使用require 函式包含檔案時,只要程式一執行就會立即呼叫檔案,發生錯誤的時候會輸出錯誤資訊,並且終止指令碼的執行 2 inc...

php檔案包含 偽協議 檔案上傳漏洞利用例項

1.上傳檔案過濾了字尾名和mime型別,files pic type 是由瀏覽器傳輸的檔案型別決定,但是mime content type 是由php 內建方法判斷檔案型別 2.任意檔案包含 f get f include once sys config.php include f 利用zip或ph...

php檔案包含 偽協議 檔案上傳漏洞相關說明

2.任意檔案包含 f get f include once sys config.php include f 利用zip或phar偽協議讀取壓縮包中的檔案 上傳webshell完成 擴充套件 php偽協議 file 訪問本地檔案系統 訪問 http s ftp 訪問 ftp s urls php 訪...