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

21、WEB漏洞-文件上传之后端黑白名单绕过

目录

    • 前言
    • 验证/绕过

前言

关于文件上传的漏洞,目前在网上的常见验证是验证三个方面:
后缀名,文件类型,文件头,其中这个文件头是属于文件内容的一个验证
后缀名:黑名单,白名单
文件类型:MIME信息(filename、Content-Type)
文件头:内容头信息

其实这几种验证方式,只是从验证的角度来讲有区别,但是它归根到底还是在验证一个东西,一个是直接的,一个是间接的,比如这个后缀名,大部分文件上传的地方是不允许以脚本格式的形式上传,通过查看当前文件名的后缀来判断,这是最直接的;还有间接的,可以通过文件头和类型来识别,其实这三种只是间接和直接的关系,直接就是用后缀名去验证,间接的就是用类型和文件头

黑名单:明确不让上传的格式后缀asp php jsp aspx cgi war
白名单:明确可以上传的格式后缀jpg png zip rar gif、、、
如果对方是黑名单验证的话,这些格式如果他有记录不全的话,我们是可以用其它格式绕过的,phtml、php5解析成php需要系统环境的支持,不是所有的都可以解析
白名单针对黑名单会安全一些,我们要采用一些相关的绕过方法,所以白名单相对黑名单验证会更安全一些

我们上传相关文件的时候,他这个文件会自带一个信息,我们讲文件上传和其它的一些东西是不相干的,就是你是什么样的脚本、什么样的网站程序都可以上传,因为这个上传的验证是通用的,你用何种脚本是没关系的,它跟sql注入是有区别的,因为注入里面是分数据库类型的,而这个文件上传他是通用的。它可以通过判定mime的值,来判定你是何种格式,这个时候,我们可以修改mime的值来进行绕过,例如:image/jpeg,让对方误认为你上传的是jpg,来达到这个上传成功,所以这个判断是不严谨的,是可以进行伪造的

打开图像png、gif、jpg的头部,有同一个东西PNG、GIF89a、JFIF,我们可以通过一个文件的头信息,来判定出一个文件的格式,如果网站文件上传单纯采用这个验证的话,那就是不严谨了。因为这个头部信息,我们可以通过BP来修改
通过内容的头部信息去确认上传的文件类型,这种验证是可以进行伪造攻击的

验证/绕过

前端
JS类防护
黑名单
特殊解析后缓
.htaccess解折
大小写绕过
点绕过
空格绕过
::$$DATA绕过
配合解析漏洞
双后缀名绕过
白名单
MIME绕过
%00截断
0x00截断
0x0a截断

http://www.lryc.cn/news/136140.html

相关文章:

  • windows的django项目部署到linux的docker上
  • 【力扣】70. 爬楼梯 <动态规划>
  • 数据结构(3)
  • 深入浅出Pytorch函数——torch.nn.init.xavier_uniform_
  • 优橙内推安徽专场——5G网络优化(中高级)工程师
  • 2023年计算机设计大赛国三 数据可视化 (源码可分享)
  • 工业生产全面感知!工业感知云来了
  • Lnton羚通关于Optimization在【PyTorch】中的基础知识
  • 冒泡排序算法
  • 无人机航管应答机 ping200XR
  • oracle归档日志满了导致启动不起来解决
  • 高等数学:线性代数-第二章
  • 星戈瑞分析FITC-PEG-Alkyne的荧光特性和光谱特性
  • VB.NET调用VB6 Activex EXE实现PowerBasic和FreeBasic的标准DLL调用
  • 深入了解Unity的Physics类:一份详细的技术指南(七)(下篇)
  • C++入门:引用是什么
  • 2023年人工智能与自动化控制国际学术会议(AIAC 2023)
  • 分布式核心知识以及常见微服务框架
  • Unity记录4.1-存储-根据关键字加载Tile
  • 数据结构—树表的查找
  • 微信小程序测试策略和注意事项?
  • VUE3封装EL-ELEMENT-PLUS input组件
  • RISC-V公测平台发布 · 在SG2042上配置Jupiter+Octave科学计算环境
  • 初识Sentinel
  • 【官方中文文档】Mybatis-Spring #注入映射器
  • UG\NX 二次开发 相切面、相邻面的选择控件
  • Quartz任务调度框架介绍和使用
  • drools8尝试
  • 【机器学习】python基础实现线性回归
  • vue table合并行 动态列名