位置: 编程技术 - 正文

你不知道的文件上传漏洞php代码分析(文件不知道在哪怎么找)

编辑:rootadmin

推荐整理分享你不知道的文件上传漏洞php代码分析(文件不知道在哪怎么找),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:不知道什么文件类型的文件类型,你不知道的文件有哪些,你不知道的文件英语,你不知道的文件英语,你不知道的文件有哪些,不知道什么文件类型的文件类型,你不知道的文件英语,你不知道的文件英语,内容如对您有帮助,希望把文章链接给更多的朋友!

漏洞描述

开发中文件上传功能很常见,作为开发者,在完成功能的基础上我们一般也要做好安全防护。文件处理一般包含两项功能,用户上传和展示文件,如上传头像。

文件上传攻击示例

upload.php

upload.html

上述代码未经过任何验证,恶意用户可以上传php文件,代码如下

<&#;php eval($_GET['command']);&#;>

恶意用户可以通过访问 如 来执行远程命令

Content-type验证

upload.php

该方式是通过Http请求头信息进行验证,可通过修改Content-type ==> image/jpg绕过验证,可以通过脚本或BurpSuite、fiddle修改如下Content-Disposition: form-data; name="userfile"; filename="shell.php"Content-Type: image/gif

图片类型验证

该方法通过读取文件头中文件类型信息,获取文件类型

备注:如JPEG/JPG文件头标识为FFD8

你不知道的文件上传漏洞php代码分析(文件不知道在哪怎么找)

upload.php

可以通过图片添加注释来绕过此验证。如添加注释<&#;php phpinfo(); &#;>,保存图片后将其扩展名改为php,则可成功上传。上传成功后访问该文件则可看到如下显示

文件扩展名验证

通过黑名单或白名单对文件扩展名进行过滤,如下代码

upload.php

当黑名单不全,构造特殊文件名可以绕过扩展名验证

直接访问上传的文件

将上传文件保存在非web root下其他文件夹下,可以防止用户通过路径直接访问到文件。upload.php

用户不可以直接通过 来访问文件,必须通过view.php来访问view.php

查看文件代码未验证文件名,用户可以通过例如 root之外,用户通过id在数据库中查询文件名,读取文件,可以有效的阻止上述漏洞发生

总结

通过以上示例分析,可总结一下几点

1.文件名修改,不使用用户上传的文件名

2.用户不可以通过上传路径直接访问文件

3.文件查看采用数据库获取文件名,从而在相应文件服务器读取文件

4.文件上传限制文件大小,个人上传数量等

标签: 文件不知道在哪怎么找

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

上一篇:php is_executable判断给定文件名是否可执行实例

下一篇:PHP编写daemon process详解及实例代码(PHP编写简易计算器)

  • 组成计税价应该是含税价还是不含税价?
  • 资金占用费税前扣除比例
  • 员工的生日津贴怎么发
  • 房地产简易征收可以开专用发票吗
  • 发票校验码看不清怎样查真伪
  • 火车票增值税申报表怎么填
  • 股息红利增值税和企业所得税
  • 2016 营改增 对建筑企业影响
  • 土地增值税清算是什么意思
  • 企业所得税季度预缴怎么计算
  • 延迟取得发票的原因
  • 给客户的返点会计分录怎么写
  • 跨年度取得增值税发票能否抵扣?
  • 纳税人签章填什么
  • 银行和保险公司是什么关系
  • 税收筹划的概念和步骤
  • 不容忽视的近义词
  • 物业费分摊会计分录
  • 资金印花税
  • 个人挂靠公司按揭购车账务怎么处理?
  • 营业外收入政府补贴要交税吗
  • 生产测试是指什么
  • 自建用地是什么性质
  • 废品回收企业回收的废品都是怎么处理
  • 个体户流水太大工商局会查吗
  • php 守护进程
  • 冲减预付账款会计分录
  • 安全人员发现重大隐患
  • 境外服务包括哪些内容
  • 家用电脑分为哪几类
  • 企业向银行贷款要交印花税吗
  • 舍夫沙万的蓝色是什么意思
  • Python之ImportError: DLL load failed: 找不到指定的模块解决方案
  • php执行mysql语句的函数
  • php中session什么意思
  • 马萨诸塞 下架
  • 会计年报表怎么做
  • 埃菲尔铁塔翻绳的方法
  • vue中使用require报错
  • php自定义变量的方法是
  • 人工智能机器人的好处
  • python里%s
  • mongodb的基本操作
  • 公司注销其他应收款怎么冲平
  • 公司归还股东借款是否需要股东会决议
  • 资源税类的税种是
  • 抵债不动产处置如何征税
  • MySQL进阶SELECT语法篇
  • 财务报表漏报了会影响领票吗
  • 母公司给子公司开票会有税务风险吗
  • 研发支出的费用化支出计入
  • 跨年发票如何做会计分录
  • 哪些项目可以计提汇兑损益
  • 用银行存款支付本季度短期借款利息
  • 建筑公司工程按什么收费
  • 弱电工程怎么入账
  • 现金不够老板垫钱怎么办
  • 增值税纳税申报表在哪里打印
  • 公司初建账都有什么账
  • sql server查询
  • centos mtr
  • win7旗舰系统
  • windows8怎么用
  • mission controller
  • linux怎么用u盘传输文件
  • linux中安装软件可使用哪些方式
  • win7系统的一键还原怎么关闭
  • win10 win8.1
  • opengl es3.0
  • android新手入门
  • jQuery select自动选中功能实现方法分析
  • node.js用途
  • python 类型检查
  • a标签跳转本地html页面
  • jquery鼠标位置
  • 如何用jquery
  • 微信气泡png
  • 报价单盖什么公章
  • 内蒙古低保信息网
  • 世界银行各国经济gdp动态
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设