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

php本地文件包含  Writeup


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变量可控且没有任何过滤。

    php本地文件包含  Writeup

/admin/cms_channel_add.php

  • 添加频道,上传图片马,频道模型填入图片马地址,地址前面加../../跳转到包含文件目录。

php本地文件包含  Writeup

  • 最后在‘管理频道’里面打开到你添加的‘频道’链接:

    php本地文件包含  Writeup
上一篇:在 CSS 预编译器之后:PostCSS


下一篇:关于Discuz! X系列UC_Server 本地文件包含漏洞