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
posted @ 2021-08-15 19:09  jzking121  阅读(345)  评论(1编辑  收藏  举报