$include_file 可控,可以上传文件, 上传后缀限制为jpg,gif,png,包含后缀限制必须为.php

allow_url_include=Off (不考虑远程包含)if ( isset( $include_file ) && strtolower( substr( $include_file, -4 ) ) == ".php" )

{

include_once( $include_file );

}

-----------------------------------------------------

解决方案

要求php>=5.3

把php打包成zip,改名上传,比如名为info.zip.jpg然后用phar流包装器包含,其中info.zip.jpg为zip文件名,info.php为zip压缩包内子文件名

测试代码:

echo "ini_get(allow_url_include):".ini_get("allow_url_include")."";

$include_file=$_GET['a'];

if ( isset( $include_file ) && strtolower( substr( $include_file, -4 ) ) == ".php" )

{

include_once( $include_file );

}

else

{

echo "file err";

}

参考文档:http://php.net/manual/zh/phar.using.stream.phpPS.据php官方文档所述,最少需要php5.3才能使用,5.3之前需要拓展如果不能用的话,还可以试试zip流包装器(需要zip拓展),注意转义井号:

zip://info.zip.jpg#info.php

php文件类型验证,包含漏洞   文件类型白名单验证及判断后缀的解决办法相关推荐

  1. GitLabCICD实战----在.gitlab-ci.yml文件的步骤中使用git clone 另一个代码仓报错的解决办法

    更多信息请关注 个人网站 一.背景 在有些时候,比如在一个项目中,产品的代码是java代码仓,自动化测试脚本是python语言,单独存放的代码仓,在使用GitlabCICD构建流水线的时候有这样一种场 ...

  2. 如何为ASP.NET Core设置客户端IP白名单验证

    本篇博文中展示了如何在ASP.NET Core应用程序中设置IP白名单验证的3种方式. 你可以使用一下3种方式: 使用中间件检查每个请求的远程IP地址 使用Action过滤器为指定的Controlle ...

  3. 【区块链 | Merkle】使用Merkle Tree空投,白名单验证

    Merkle Tree在高效验证数据的同时减少了链上计算和存储,因为非常适合基于区块链的白名单验证,空投,IDO等需要验证数据的业务. Merkle Tree介绍 默克尔树,在区块链出现前,曾广泛用于 ...

  4. java ip 白名单_Java代码中对IP进行白名单验证

    public classipUtil {//IP的正则,这个正则不能验证第一组数字为0的情况//private static Pattern pattern = Pattern//.compile(& ...

  5. 文件包含漏洞 文件伪协议利用

    目录 0x0 文件包含漏洞原理 0x1 检测文件包含漏洞 0x2 文件包含漏洞类型 0x3 文件协议流 0x4 实战 简介 #文件包含漏洞 原理,检测,类型,利用,修复等 #文件包含各个脚本代码 AS ...

  6. 什么是文件包含漏洞?文件包含漏洞分类!

    网络安全是安全产业的重要组成部分,也是国家高度重视且大力支持的重点方向,在当下十分受关注,正因如此,越来越多的人选择转行学习网络安全.提及网络安全,大家应该都知道网络安全中有很多漏洞,今天这篇文章主要 ...

  7. Struts文件上传包含修改文件上传参数,多文件上传

    配置xml: <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC& ...

  8. C/C++不同文件夹下包含头文件的方法及#include的使用

     本文主要介绍了如何不同文件夹下使用预处理器指示符#include. 假设我们有如下一个工程,其中包含了几个源代码文件和头文件.其中main.c是主源代码文件,里面包含main函数. X 在bas ...

  9. tar压缩或者解压文件(包含当前文件夹 不包含当前文件夹 两种情况)

    文章目录 一.背景 二.包含当前文件夹方式 1.压缩 2.解压 三.不包含文件夹方式 1.压缩 2.解压 转载请标明出处: https://bigmaning.blog.csdn.net/articl ...

最新文章

  1. Pandas入门教程
  2. android Butter Knife 使用详解
  3. 虚拟机安装(Cent OS)
  4. oracle group by ,having ,order by
  5. 解决无法连接到visual studio开发服务器的问题
  6. C++简单的下载文件操作的封装
  7. linux系统奔溃之vmcore:kdump 的亲密战友 crash
  8. Textview属性Kotlin.Android
  9. 【信号与系统】信号频谱和测量之汉明窗
  10. NFS 服务端配置流程
  11. 启动kafka时报错:java.nio.file.FileSystemException,另一个程序正在使用此文件,进程无法访问。
  12. qt osg 多点触摸
  13. DynamicDNSSVR 动态域名更新服务 免费软件
  14. java pdf转图片
  15. chrome浏览器打开网址找不到服务器IP
  16. 图片加载 二维码 解析
  17. 入侵检测技术综述(比较全)
  18. 【问题描述】建立一个通讯录的结构记录,包括姓名、生日、电话号码。输入n(n<10)个朋友的信息,再按他们的年龄从大到小的顺序依次输出其信息
  19. 【特大消息】博客换地址啦!
  20. 微软控诉四大PC品牌经销商

热门文章

  1. ubuntu系统20.04服务器是啥,ubuntu 20.04系统要求
  2. Android实习札记(10)---ImageView的src属性 VS blackground
  3. MATLAB匿名函数的应用2
  4. SR865A 4MHz数字锁相放大器
  5. 智能机那些事儿――第九讲 硬件
  6. 线程池如何监控,帮助开发快速定位错误?
  7. 剑指 Offer 07. 重建二叉树
  8. Rweibo-用R语言分析微博内容
  9. 拼多多打单系统服务器繁忙怎么办,为什么多多打单管理系统打不开?多多打单功能有什么?...
  10. zoj 2770 Burn the Linked Camp(火烧连营) 差分约束