当前位置: 首页 > 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不同域中。(同源策略)
http://www.lryc.cn/news/389576.html

相关文章:

  • Golang 单引号、双引号和反引号的概念、用法以及区别
  • linux和mysql基础指令
  • JDK 为什么需要配置环境变量
  • ViewBinding的使用(因为kotlin-android-extensions插件的淘汰)
  • IOS Swift 从入门到精通:ios 连接数据库 安装 Firebase 和 Firestore
  • QT4-QT5(6)-const char* QString 乱码转换
  • 报错:RuntimeError_ cuDNN error_ CUDNN_STATUS_EXECUTION_FAILED
  • 黑马点评项目总结1-使用Session发送验证码和登录login和 使用Redis存储验证码和Redis的token登录
  • 【大模型】Vllm基础学习
  • 使用vue动态给同一个a标签添加内容 并给a标签设置hover,悬浮文字变色,结果鼠标悬浮有的字上面不变色
  • 【ajax实战06】进行文章发布
  • Codeforces Round 954 (Div. 3)(A~E)
  • 基于Java微信小程序同城家政服务系统设计和实现(源码+LW+调试文档+讲解等)
  • [21] Opencv_CUDA应用之使用Haar级联的对象检测
  • CXL:拯救NVMe SSD缓存不足设计难题-2
  • Opencv学习项目6——pyzbar
  • Switch 刷安卓11 (LineageOS 18.1) 大气层双系统图文教程
  • Spring Boot与Spring Batch的深度集成
  • RTSP协议在视频监控系统中的典型应用、以及视频监控设备的rtsp地址格式介绍
  • Kotlin基础——异步和并发
  • 消防认证-防火卷帘
  • SpringBoot3.3集成knif4j-swagger文档方式和使用案例
  • 老年服务与管理实训室:制定教学模式
  • 4、DDD、中台和微服务的关系
  • 【ACM出版,马来西亚-吉隆坡举行】第四届互联网技术与教育信息化国际会议 (ITEI 2024)
  • 走进IT的世界
  • Linux 时区文件编译器 zic【man 8 zic】
  • Springboot下使用Redis管道(pipeline)进行批量操作
  • Vue技巧大揭秘:自定义指令的力量与应用
  • HR人才测评,如何考察想象力?