当前位置: 首页 > news >正文

【文件上传】

文件上传漏洞 FileUpload

0x01 定义
服务端未对客户端上传文件进行严格的 验证和过滤造成可上传任意文件情况;
0x02 攻击满足条件:

  1. 上传文件能够被Web容器解释执行
  2. 找到文件位置
  3.上传文件未被改变内容。(躲避安全检查,格式化,图片压缩等功能)

0x03 绕过
  • 文件名检查
    上传时,用0x00截断文件名、改变请求包中上传类型Content-Type
    原理:许多语言对字符串的函数0x00被认为是终止符
  • 文件头类型检查
    原理:将文件内容改为特定文件内容头的格式。此时需要保证上传文件能够被web容器解析。如上传含php的.jpg文件,是不能被PHP解释器调用的,应该是.php。
  • 了结web server功能特性后的绕过
    如:server判断文件名字符串的前后顺序,解析过程等
  • 钓鱼
    如;通过利用XSS、服务器端302跳转等功能,从正常的网站跳转到钓鱼网站
  • 竞争条件攻击
    条件:一些位置允许上传任意文件,但会检查是否包含webshell,若是则会删除。利用上传成功和删除之间时间差执行脚本。
0x04文件上传 防御
  • 判断文件类型,使用白名单
  • 改写文件名和文件路径
  • 将文件存储server放到与上传server不同域中。(同源策略)

相关文章:

  • Linux CentOS 环境 MySQL 主从复制集群搭建
  • 电信NR零流量小区处理
  • java 操作 milvus 2.1.4
  • 税务笔记()
  • 性能调优 性能监控
  • Hadoop3:Yarn框架的三种调度算法
  • SUPERVIVE无法联机、联机失败、联机报错的解决办法分享
  • AI与音乐:终极对决,机械混音师将扬弃人类知识!
  • Webpack: 开发 PWA、Node、Electron 应用
  • C语言笔记27 •单链表介绍•
  • Yolov8可视化界面使用说明,含代码
  • FastAPI 基本路由
  • 新能源行业知识体系-------主目录-----持续更新
  • Java校园跑腿小程序校园代买帮忙外卖源码社区外卖源码
  • C语言的数据结构:图的操作
  • Angularjs之国际化
  • electron原来这么简单----打包你的react、VUE桌面应用程序
  • k8s 面向应用开发者的基础命令
  • leetcode388. Longest Absolute File Path
  • mockjs让前端开发独立于后端
  • node和express搭建代理服务器(源码)
  • Octave 入门
  • rc-form之最单纯情况
  • SQLServer之创建数据库快照
  • vue--为什么data属性必须是一个函数
  • 得到一个数组中任意X个元素的所有组合 即C(n,m)
  • 发布国内首个无服务器容器服务,运维效率从未如此高效
  • 给初学者:JavaScript 中数组操作注意点
  • 理清楚Vue的结构
  • 漫谈开发设计中的一些“原则”及“设计哲学”
  • 我的业余项目总结
  • 因为阿里,他们成了“杭漂”
  • 硬币翻转问题,区间操作
  • ​LeetCode解法汇总2670. 找出不同元素数目差数组
  • ​一文看懂数据清洗:缺失值、异常值和重复值的处理
  • # AI产品经理的自我修养:既懂用户,更懂技术!
  • #!/usr/bin/python与#!/usr/bin/env python的区别
  • #NOIP 2014# day.1 生活大爆炸版 石头剪刀布
  • #pragma once与条件编译
  • #单片机(TB6600驱动42步进电机)
  • $forceUpdate()函数
  • (09)Hive——CTE 公共表达式
  • (173)FPGA约束:单周期时序分析或默认时序分析
  • (4)事件处理——(7)简单事件(Simple events)
  • (55)MOS管专题--->(10)MOS管的封装
  • (CVPRW,2024)可学习的提示:遥感领域小样本语义分割
  • (C语言)fread与fwrite详解
  • (ZT)一个美国文科博士的YardLife
  • (黑马C++)L06 重载与继承
  • (十七)devops持续集成开发——使用jenkins流水线pipeline方式发布一个微服务项目
  • (学习日记)2024.04.10:UCOSIII第三十八节:事件实验
  • (转)3D模板阴影原理
  • (转)一些感悟
  • ... fatal error LINK1120:1个无法解析的外部命令 的解决办法
  • .class文件转换.java_从一个class文件深入理解Java字节码结构