位置: 编程技术 - 正文

你不知道的文件上传漏洞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编写简易计算器)

  • 自查补报以前年度收入可以补在当前属期吗
  • 一般纳税人的增值税征收方式的特点是
  • 收到财政局拨款填到现金流量表哪一项
  • 长期应收款的计税基础 陈版
  • 小规模机械租赁公司
  • 销售净水器营业执照范围
  • 长期股权投资的账务处理
  • 代付其他公司货款会计分录
  • 理论增值额的含义
  • 开错税率怎么报税
  • 已认证未抵扣的发票,又做了红字,如何处理
  • 契税如果没有按时交会怎么办
  • 案例分析正当防卫
  • 停车场领的定额发票要怎么报税?
  • 预付专利转让费计入什么科目?
  • 工程税金计入哪个账户
  • 税务更正申报需要哪些资料
  • 税控盘提示未抄报税
  • 向股东分配股利会影响所有者权益吗
  • 企业收到的罚款收入属于什么科目
  • 销售净利率范围
  • 可以用鸿蒙系统的手机
  • 企业年金基金缴费必须归集到受托财产托管账户
  • macOSCatalina10.15.5Beta4值得升级吗 macOSCatalina10.15.5Beta4更新了什么
  • 冲回暂估分录
  • 小微企业应纳税所得额300万所得税
  • 分布式简介
  • php db2
  • 出借和出租包装物的区别
  • yii2.0框架
  • 贷款需要考虑什么
  • 股东借款转增资本公积要验资吗
  • python索引值-1和位置-1
  • phpcms v9安装教程
  • sql server创建数据表的完整语法
  • 微众银行的企业贷款好批吗
  • sql纵表转横表
  • 小企业销售商品时,确认收入的标志有
  • 法定盈余公积的主要用途
  • 暂估成本的账务怎么处理
  • 报废半成品怎么做账
  • 2020年账簿印花税减免政策
  • 税局代开的法律顾问费能否抵扣?
  • 计提坏账准备需要哪些资料
  • 应付账款暂估可以法人付款吗
  • 印花税属于什么科目
  • mysql忽略大小写设置
  • linux 新手
  • win10系统预览版
  • win10一直显示正在配置更新
  • RedHat 9.0下Apache+PHP+MySQL服务器安装配置
  • 怎么修改Windows账户密码
  • win7系统怎么更改默认浏览器
  • win10通过任务管理器打开设置
  • linux快速查看目录大小
  • win10系统玩英雄联盟可以吗
  • Win10年度升级版Redstone来了:更加个人化的计算体验
  • 怎么从win8装回win7
  • linux给文件赋予权限
  • Android通过HttpURLConnection获取JSON并进行UI更新
  • excel如何制作登录界面代码
  • linux列操作
  • 批处理修改文件名称
  • html中dt
  • Node.js中的全局对象有
  • shell中特殊字符的含义
  • js中正则表达式语法
  • u盘备份系统操作步骤
  • unity游戏项目开发教程
  • linux归档文件什么意思
  • javascript+
  • 前端js优化
  • python简要介绍
  • 怎么查询工程师名下的项目
  • 股权转让申报期限
  • 临沂国税地税局领导班子
  • 就业失业登记证网上申请
  • 矿产资源税的计税依据
  • 重庆地方税务局2016年2号
  • 佛山退休办理
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设