zoukankan      html  css  js  c++  java
  • 文件包含

    一.定义:

    为了更好的使用代码的重用性,引入了文件包含函数,可以通过文件包含函数将文件包含进来,直接使用包含文件的代码

    二.产生原因:

    在文件包含时候,为了灵活包含文件,将包含文件设置为变量,通过动态变量来引入需要包含的文件时,用户可以对变量的值可控而服务器端未对变量值进行合理地校验或者校验被绕过,这样就导致了文件包含漏洞。

    <?php 
    	$file=$_GET['file'];
    	include($file)
    

    三.文件包含函数

    include() //代码错误只生成警告(E_WARNING),并且脚本会继续
    include_once()//包含一次
    require()//代码错误生成致命错误(E_COMPILE_ERROR)并停止脚本
    require_once() //包含一次
    

    四.文件包含漏洞分类

    1.本地文件包含

    2.远程文件包含

    php配置:

    allow_url_fopen : 可以读取远程文件包含

    allow_url_include: 可以使用include require

    五.php伪协议

    http://127.0.0.1/index.php?file=php://filter/read=convert.base64-encode/resource=phpinfo.txt
    

    http://127.0.0.1/index.php?file=zip://phpinfo.zip%23phpinfo.txt
    

    六.其他利用方式:

    1.00截断

    2.长度截断(win:256 ,Linux:4096)

    3.包含日志

    4.包含session

    七.文件包含防御:

    1.php中使用open_basedir 配置文件限制访问在指定的区域

    2.过滤点, 斜杠,反斜杠

    3.禁止服务器远程文件包含

    4.尽量不要使用动态包含,可以在需要包含的页面固定写好

  • 相关阅读:
    :where()和:is()
    响应式布局(媒体查询+rem)
    v-html的问题及解决办法
    Sticky Footer(粘性页脚)
    css多行文字垂直居中
    BFC
    margin负值的情况
    windows系统设置环境变量
    hash和history原生事件
    腾讯WeTest零售行业质量解决方案
  • 原文地址:https://www.cnblogs.com/dyanbk/p/12250303.html
Copyright © 2011-2022 走看看