1、include() 、require()
當使用include()函式包含檔案時,只有**執行到 include() 函式時才將檔案包含進來,發生錯誤時只給出乙個警告,繼續向下執行。
當使用require()函式包含檔案時,只要程式一執行就會立即呼叫檔案,發生錯誤的時候會輸出錯誤資訊,並且終止指令碼的執行
2、include_once() 功能和 include() 相同,區別在於當重複呼叫同一檔案時,程式只呼叫一次。
require_once()功能和require()相同,區別在於當重複呼叫同一檔案時,程式只呼叫一次。
當使用上述四個函式包含乙個新檔案時,該檔案將作為 php **執行,php 核心並不在意該被包含的檔案是什麼型別。所以如果被包含的是 txt 檔案、檔案、遠端 url、也都將作為 php **執行。
robots.txt 內容為:<?php phpinfo();?>
路徑為:e:\phpstudy\www\robots.txt
1、本地檔案包含 lfi(local file include)
2、遠端檔案包含 rfi(remote file include)(需要 php.ini 中 allow_url_include=on、allow_url_fopen = on)
在 php.ini 中,allow_url_fopen 預設一直是 on,而 allow_url_include 從 php5.2 之後就預設為 off。
php偽協議事實上就是支援的協議與封裝協議(12種)
file:// — 訪問本地檔案系統
http:// — 訪問 http(s) **
ftp:// — 訪問 ftp(s) urls
php:// — 訪問各個輸入/輸出流(i/o streams)
zlib:// — 壓縮流
data:// — 資料(rfc 2397)
glob:// — 查詢匹配的檔案路徑模式
phar:// — php 歸檔
ssh2:// — secure shell 2
rar:// — rar
ogg:// — 音訊流
expect:// — 處理互動式的流
路徑為:e:\phpstudy\www\include.php
<?php
include
($_get
[『file『]
)?>
robots.txt
路徑為:e:\phpstudy\www\robots.txt
<?php phpinfo();?>
robots.zip
路徑為:e:\phpstudy\www\robots.zip
內容為:robots.txt
1.php
路徑為:e:\phpstudy\www\1.php
<?php
echo
('hello word!');
?>
flag.txt
路徑為:e:\flag.txt
在ctf中經常使用的是php://filter和php://input
(1)php://input用於執行php**。
也可以寫入shell獲取伺服器許可權
接下來就是連線後門就ok了
(2)php://filter用於讀取原始碼
php://filter在雙off的情況下也可以正常使用;
獲取到的內容是base64加密的,解碼即可獲取1.php原始碼
用於訪問本地檔案系統,在ctf中通常用來讀取本地檔案
file:// 協議在雙off的情況下也可以正常使用;
需要獲取檔案絕對路徑
可以寫入後門,獲取許可權執行任意命令
zip:// [壓縮檔案絕對路徑]#[壓縮檔案內的子檔名]
先將要執行的php**寫好檔名為robots.txt,將robots.txt進行zip壓縮,壓縮檔案名為rob.zip,如果可以上傳zip檔案便直接上傳,若不能便將rob.zip重新命名為rob.jpg後在上傳.
由於#在get請求中會將後面的引數忽略所以使用get請求時候應進行url編碼為%23,且此處經過測試相對路徑是不可行,所以只能用絕對路徑。
檔案包含與偽協議
說明 include 函式對檔案字尾名無要求,而對其中的語法有要求,即使字尾名為txt,jpg也會被當做php檔案解析,只要檔案內是形式就可以執行,但是如果不是php語法的形式,即使字尾為php,也無法執行。用於訪問本地檔案系統的檔案條件 allow url fopen off on allow u...
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 訪...