• 七、文件包含漏洞


    一、文件包含漏洞

    解释:文件包含漏洞是一种注入型漏洞,其本质就是输入一段用户能够控制的脚本或者代码,并让服务端执行;其还能够使得服务器上的源代码被读取,在PHP里面我们把可重复使用的函数写入到单个文件中,在使用该函数时,直接调用此文件,而无需再次编写函数,这一过程叫做包含

    1.PHP常用文件包含函数

    1. require():找不到被包含的文件会产生致命错误,并停止脚本运行
    2. include():找不到被包含的文件只会产生警告,脚本继续执行
    3. require_once()与require()类似:唯一的区别是如果该文件的代码已经被包含,则不会再次包含
    4. include_once()与include()类似:唯一的区别是如果该文件的代码已经被包含,则不会再次包含

    2.文件包含之任意文件转为PHP执行

    解释:在php里面include函数,在执行的时候,如果可以将被包含文件里面的内容当做php代码执行,也就是说,比如include包含了一个png文件,但是里面写的都是php代码,这个php就会被执行,这样很容易造成一句话木马的上传

    例如:
    在这里插入图片描述
    解释:从上图文件可知道,page对应include加载的文件,a文件内容如下,其并非php后缀文件但是却被当作php执行了

    <?php
    echo 'odwadawdwak';
    ?>
    
    • 1
    • 2
    • 3

    3.远程文件包含

    解释:当php配置项allow_url_includeallow_url_fopen状态为ON的话,则include/require函数是可以加载远程文件,远程文件->其它服务器上的php文件,这种设置如果代码存在文件包含漏洞可能会造成致命的威胁

    4.伪协议

    解释:PHP内置了很多伪协议,其可能会造成任意文件读取,执行任意命令等问题

    文章在此:二、PHP伪协议

  • 相关阅读:
    油溶性硫化镉量子点,CdS 量子点,CdS QDS
    使用达梦数据库的总结
    CANopen扫盲
    【Spring Boot】如何集成Redis
    小心golang中的无类型常量
    MySQL数据库—创建数据库与数据表
    SpringBoot学习笔记(五)IOC
    Vue $nextTick
    HTTP——GET请求
    【面试题】Vue 生命周期(二)
  • 原文地址:https://blog.csdn.net/weixin_46765649/article/details/134491014