位置: 编程技术 - 正文

PHP中危险的file_put_contents函数详解

编辑:rootadmin

前言

最近在EIS上遇到一道文件上传的题,发现过滤了<,这样基本很多姿势都无效了,想了很久没做出来这题,赛后才知道是利用数组来绕过, 这里分析了下原理,话不多说了,来一起看看详细的介绍吧。

来看下file_put_contents函数第二个参数data的官网定义:

可以看到,data参数可以是数组, 会自动做join('',$array)转换为字符串的

该函数访问文件时,遵循以下规则:

如果设置了 FILE_USE_INCLUDE_PATH,那么将检查 *filename* 副本的内置路径 如果文件不存在,将创建一个文件 打开文件 如果设置了 LOCK_EX,那么将锁定文件 如果设置了 FILE_APPEND,那么将移至文件末尾。否则,将会清除文件的内容 向文件中写入数据 关闭文件并对所有文件解锁 如果成功,该函数将返回写入文件中的字符数。如果失败,则返回 False。

但我们字符串过滤函数一般是用preg_match函数来过滤的,如:

我们知道,很多处理字符串的函数如果传入数组会出错返回NULL, 如strcmp,strlen,md5等, 但preg_match 函数出错返回false, 这里我们可以通过var_dump(preg_match('/</',$data)); 来验证, 这样的话,preg_match 的正则过滤就失效了

因此,猜测文件上传的代码是这样写的

于是我么可以传入content[]=<&#;php phpinfo();&#;>&ext=php 这样来绕过

修复方法

修复方法是使用fwrite 函数来代替危险的file_put_contents函数,fwrite函数只能传入字符串,如果是数组会出错返回false

总结

标签:

本文链接地址:https://www.jiuchutong.com/biancheng/274959.html 转载请保留说明!

上一篇:PHP回调函数概念与用法实例分析(php 回调函数)

下一篇:php实现的生成迷宫与迷宫寻址算法完整实例(php代码生成器)

  • 仓储服务费税率2021
  • 一般纳税人增值税会计账务处理
  • 个人申请代开发票流程怎么操作
  • 开办期间的利息收入怎么做账
  • 报税时资产总额怎么填
  • 抵扣联的抵扣期限
  • 劳保费属于什么会计科目
  • 个人独资企业注册流程
  • 税收专用缴款书
  • 增值税计算方式举例
  • 有限合伙企业如何分红
  • 对方电子承兑发出多长时间可以到账
  • 金碟系统操作
  • 工商年报中纳税总额包括工会经费吗
  • 做企业所得税汇算清缴前需要准备什么资料
  • 会议费报销注意事项
  • 跨地区经营产生的GDP
  • 年底进项税和销项税怎么记
  • 留存收益账务处理视频
  • 最新消费税税目顺口溜
  • 商业土地厂房办公房过户需要交什么税?
  • 盘盈对应的入账科目
  • 年金是根据什么计算的
  • 存货盘亏损失
  • 设备租赁收入属于什么收入
  • 事业单位接受捐赠的货币资金在财务会计中确认捐赠收入
  • win7为什么现在不能用了
  • 如何解决Windows10电脑卡顿现象
  • PHP:stream_filter_remove()的用法_Stream函数
  • neo什么意思翻译成中文
  • 偏食和挑食会有什么不良后果?
  • 圣三一教堂英文
  • 怎么开通公众号微信公众平台
  • php短信验证免费接口配置
  • uni-app--》uni-app的生命周期讲解
  • vuex详解和用法
  • qrcode.min.js
  • 润滑脂开票属于成品油吗
  • 汇兑损益计入什么科目
  • vue实例教程
  • 此战成硕,我成功上岸西南交通大学了~~~
  • python 元类 详解
  • uni-app入门到实战 以项目为导向
  • 税金及附加也是费用吗
  • 暂估入库有风险吗
  • dedecms官网
  • Python函数的参数及其类型
  • 织梦可以放两套模板吗
  • echarts怎么引入
  • 装卸搬运服务属于劳务吗
  • 法人工资应该怎么处理
  • 发票清单如何开具呢?
  • sql游标用法
  • 疫情防控免税政策
  • 出口发票上的汇票是什么
  • 加强备案管理
  • 上月留抵税怎么算应纳税额
  • 货拉拉平台收取费用
  • 存货报废会计账务处理
  • 库存现金是负数怎么调
  • sql2008数据库置疑
  • win8.1配置要求
  • ubuntu20.10
  • win7看视频黑屏有声音
  • helppane.exe是什么文件
  • win8系统怎么搜索文件
  • win10系统玩lol弹出来
  • win7系统连不了蓝牙
  • win7自动关闭显示器
  • 实用的批处理
  • android使用webview加载网页
  • js字符串函数
  • androidstudio国内镜像地址
  • python怎么发送
  • jquery怎么修改样式
  • 微信群记账小程序
  • 股权转让本人不签字可以吗
  • 内蒙古一般纳税人查询网
  • 如何查询公司是一般纳税人还是小规模纳税人
  • 城市土地使用税计税依据
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设