php本地文件包含 Writeup



目錄


本地文件包含簡介

文件包含函數加載的參數沒有經過過濾或者嚴格的定義,可以被用戶控制,包含其他惡意文件,導致了執行了非預期的代碼。

  • php中引發文件包含漏洞的通常是以下四個函數:
  1. include() 如果在包含的過程中有錯,比如文件不存在等,則會直接退出,不執行后續語句。
  2. include_once()
  3. require() 如果出錯的話,只會提出警告,會繼續執行后續語句。
  4. require_once()

其中require_once()include_once() 功能與require()include() 類似。但如果一個文件已經被包含過了,則 require_once() 和 include_once() 則不會再包含它,以避免函數重定義或變量重賦值等問題。

當利用這四個函數來包含文件時,不管文件是什么類型,都會直接作為php文件進行解析。
測試代碼:

<?php
	$file = $_GET['file'];
	include $file;
?>

在同目錄下有個phpinfo.txt,其內容為<?php phpinfo(); ?>則只需要訪問:
即可成功解析phpinfo
image


LFI本地文件包含01

題目URL:www。whalwl。site:8014
提示:flag在網站跟目錄下!

找到上傳:/upload.php
傳一個圖片馬就好了。

LFI本地文件包含02

題目URL:www。whalwl。site:8028
提示:flag在服務器根目錄。
后台賬號密碼: admin admin

首先經過特征比對,發現程序是凡諾企業網站管理系統 3.0
經過查閱資料發現存在包含漏洞

  • 漏洞文件:
    其中channel.php存在包含文件,include里有$dir $t_mpath $c_mcmodel $t_path四個變量
if (ism()) {
include($dir.$t_mpath.$c_mcmodel);
} else {
include($dir.$t_path.$c_cmodel);
}
?>
  • 跟蹤變量發現$c_mcmodel變量可控且沒有任何過濾。
    image

/admin/cms_channel_add.php

  • 添加頻道,上傳圖片馬,頻道模型填入圖片馬地址,地址前面加../../跳轉到包含文件目錄。

image

  • 最后在‘管理頻道’里面打開到你添加的‘頻道’鏈接:
    image


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM