当前位置: 首页 > 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截断

相关文章:

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

目录 前言验证/绕过 前言 关于文件上传的漏洞,目前在网上的常见验证是验证三个方面: 后缀名,文件类型,文件头,其中这个文件头是属于文件内容的一个验证 后缀名:黑名单,白名单 文件类型&#xf…...

windows的django项目部署到linux的docker上

编辑dockerfile文件,可以自行寻找相关教程 创建镜像 docker bulid -t imagename:tag .查看镜像 docker images 如果想自己先试一下,那就需要运行容器 docker run -it -d -p 8000:8000 --name volume_name imagename:tag 查看容器 docker ps -a 进…...

【力扣】70. 爬楼梯 <动态规划>

【力扣】70. 爬楼梯 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 示例 1: 输入:n 2 输出:2 解释:有两种方法可以爬到楼顶。 1. 1 阶 1 阶 2. …...

数据结构(3)

线性表是多个具有相同特征的数据的有限序列。 前驱元素:A在B前面,称A为B的前驱元素。 后继元素:B在A后面,称B为A的后继元素。 线性表特征: 1.一个元素没有前驱元素,就是头结点; 2.最后一个…...

深入浅出Pytorch函数——torch.nn.init.xavier_uniform_

分类目录:《深入浅出Pytorch函数》总目录 相关文章: 深入浅出Pytorch函数——torch.nn.init.calculate_gain 深入浅出Pytorch函数——torch.nn.init.uniform_ 深入浅出Pytorch函数——torch.nn.init.normal_ 深入浅出Pytorch函数——torch.nn.init.c…...

优橙内推安徽专场——5G网络优化(中高级)工程师

可加入就业QQ群:801549240 联系老师内推简历投递邮箱:hrictyc.com 内推公司1:浙江省邮电工程建设有限公司 内推公司2:北京宜通华瑞科技有限公司 内推公司3:浙江明讯网络技术有限公司 浙江省邮电工程建设有限公司 …...

2023年计算机设计大赛国三 数据可视化 (源码可分享)

2023年暑假参加了全国大学生计算机设计大赛,并获得了国家三等奖(国赛答辩出了点小插曲)。在此分享和记录本次比赛的经验。 目录 一、作品简介二、作品效果图三、设计思路四、项目特色 一、作品简介 本项目实现对农产品近期发展、电商销售、灾…...

工业生产全面感知!工业感知云来了

面向工业企业数字化转型需求,天翼物联基于感知云平台创新能力和5G工业物联数采能力,为客户提供工业感知云服务,包括工业泛协议接入、感知云工业超轻数采平台、工业感知数据治理、工业数据看板四大服务,构建工业感知神经系统新型数…...

Lnton羚通关于Optimization在【PyTorch】中的基础知识

OPTIMIZING MODEL PARAMETERS (模型参数优化) 现在我们有了模型和数据,是时候通过优化数据上的参数来训练了,验证和测试我们的模型。训练一个模型是一个迭代的过程,在每次迭代中,模型会对输出进行猜测&…...

冒泡排序算法

//version 1 void bubblesort(vector<int>& nums){int n=nums.size();for(int i...

无人机航管应答机 ping200XR

产品概述 ping200XR是一个完整的系统&#xff0c;旨在满足航管应答器和自动相关监视广播(ADS-B)的要求&#xff0c;在管制空域操作无人航空系统(UAS)。该系统完全可配置为模式A&#xff0c;模式C&#xff0c;模式S转发器和扩展ADS-B发射机的任何组合。ping200XR包括一个精度超…...

oracle归档日志满了导致启动不起来解决

oracle启动不起来解决 原因&#xff1a;闪回归档区的空间满了 [oraclepre-oracle ~]$ sqlplus / as sysdbaSQL*Plus: Release 11.2.0.4.0 Production on Tue Aug 22 14:48:50 2023Copyright (c) 1982, 2013, Oracle. All rights reserved.Connected to: Oracle Database 11g…...

高等数学:线性代数-第二章

文章目录 第2章 矩阵及其运算2.1 线性方程组和矩阵2.2 矩阵的运算2.3 逆矩阵2.4 Cramer法则 第2章 矩阵及其运算 2.1 线性方程组和矩阵 n \bm{n} n 元线性方程组 设有 n 个未知数 m 个方程的线性方程组 { a 11 x 1 a 12 x 2 ⋯ a 1 n x n b 1 a 21 x 1 a 22 x 2 ⋯ a …...

星戈瑞分析FITC-PEG-Alkyne的荧光特性和光谱特性

​欢迎来到星戈瑞荧光stargraydye&#xff01;小编带您盘点&#xff1a; FITC-PEG-Alkyne的荧光特性和光谱特性是对其荧光性能进行分析的方面。以下是FITC-PEG-Alkyne的一些常见荧光特性和光谱特性&#xff1a; **1. 荧光激发波长&#xff1a;**FITC-PEG-Alkyne的荧光激发波长通…...

VB.NET调用VB6 Activex EXE实现PowerBasic和FreeBasic的标准DLL调用

VB6写的ActiveX EXE公共对象是外置进程&#xff0c;因此&#xff0c;尽管它是x86 32位的进程&#xff0c;但可以集成到 VB.NET的x64和x32程序中使用。 VS2022的VB.NET程序&#xff0c;调用ActiveX DLL对象我在上篇笔记中写了 VB.NET通过VB6 ActiveX DLL调用PowerBasic及FreeB…...

深入了解Unity的Physics类:一份详细的技术指南(七)(下篇)

接着上一篇深入了解Unity的Physics类(上篇)&#xff0c;我们继续把Physics类剩余的属性和方法进行讲解 碰撞检测和忽略: (这些方法和属性涉及查询和处理物体之间的碰撞) Physics.CheckBox: 检查给定位置的盒子是否与任何碰撞器接触或者位于任何碰撞器内部。 Physics.CheckCapsu…...

C++入门:引用是什么

目录 1.引用的概念 2.引用的特征 3.常引用 4.引用使用场景 5.传值&#xff0c;传引用效率比较 6.引用与指针的区别 1.引用的概念 引用不是新定义一个变量&#xff0c;而是给已存在变量取了一个别名&#xff0c;编译器不会为引用变量开辟内存空 间&#xff0c;它和它引用…...

2023年人工智能与自动化控制国际学术会议(AIAC 2023)

2023年人工智能与自动化控制国际学术会议&#xff08;AIAC 2023&#xff09; The 2023 International Conference on Artificial Intelligence and Automation Control 2023年人工智能与自动化控制国际学术会议&#xff08;AIAC 2023&#xff09;将于2023年10月27-29日在中…...

分布式核心知识以及常见微服务框架

分布式中的远程调用 在微服务架构中&#xff0c;通常存在多个服务之间的远程调用的需求。远程调用通常包含两个部分&#xff1a;序列化和通信协议。常见的序列化协议包括json、xml、 hession、 protobuf、thrift、text、 bytes等&#xff0c;目前主流的远程调用技术有基于HTTP…...

Unity记录4.1-存储-根据关键字加载Tile

文章首发见博客&#xff1a;https://mwhls.top/4810.html。 无图/格式错误/后续更新请见首发页。 更多更新请到mwhls.top查看 欢迎留言提问或批评建议&#xff0c;私信不回。 汇总&#xff1a;Unity 记录 摘要&#xff1a;实现完 Tilemap 地图生成后&#xff0c;实现根据关键字…...

数据结构—树表的查找

7.3树表的查找 ​ 当表插入、删除操作频繁时&#xff0c;为维护表的有序表&#xff0c;需要移动表中很多记录。 ​ 改用动态查找表——几种特殊的树 ​ 表结构在查找过程中动态生成 ​ 对于给定值key ​ 若表中存在&#xff0c;则成功返回&#xff1b; ​ 否则&#xff0…...

微信小程序测试策略和注意事项?

一、测试前准备&#xff08;环境搭建&#xff09; 1、前端页面 微信 Web 开发者工具安装、授权测试用的微信号可预览和调试小程序 2、管理后台 配置内网测试服务器环境&#xff0c;通过 PC 端 Web 站点管理小程序前端的输出内容&#xff0c;可从开发人员获取管理账号进行测…...

VUE3封装EL-ELEMENT-PLUS input组件

VUE3封装EL-ELEMENT-PLUS input组件 完整代码 <template><div><div><div class"lable_top" v-if"label"><label :class"lable_sty">{{ label }}</label></div><el-inputv-model"inputValue&…...

RISC-V公测平台发布 · 在SG2042上配置Jupiter+Octave科学计算环境

简介 JupyterHub是一个开源的共享计算平台&#xff0c;它为每个用户管理一个单独的 Jupyter 环境&#xff0c; 可以用于学生班级、企业数据科学小组或科学研究小组。它是一个多用户中心&#xff0c;可以生成、管理和代理多个单用户Jupyter笔记本服务器的实例。 GNU Octave是一…...

初识Sentinel

目录 1.解决雪崩的方式有4种&#xff1a; 1.1.2超时处理&#xff1a; 1.1.3仓壁模式 1.1.4.断路器 1.1.5.限流 1.1.6.总结 1.2.服务保护技术对比 1.3.Sentinel介绍和安装 1.3.1.初识Sentinel 1.3.2.安装Sentinel 1.4.微服务整合Sentinel 2.流量控制 2.1.簇点链路 …...

【官方中文文档】Mybatis-Spring #注入映射器

注入映射器 与其在数据访问对象&#xff08;DAO&#xff09;中手工编写使用 SqlSessionDaoSupport 或 SqlSessionTemplate 的代码&#xff0c;还不如让 Mybatis-Spring 为你创建一个线程安全的映射器&#xff0c;这样你就可以直接注入到其它的 bean 中了&#xff1a; <bea…...

UG\NX 二次开发 相切面、相邻面的选择控件

文章作者:里海 来源网站:https://blog.csdn.net/WangPaiFeiXingYuan 简介: 有群友问“UFUN多选功能过滤面不能选择相切面或相邻面之类的吗?” 这个用Block UI的"面收集器"就可以,ufun函数是不行的。 效果: C++语言在UG二次开发中的应用及综合分析 C++ …...

Quartz任务调度框架介绍和使用

一、Quartz介绍 Quartz [kwɔːts] 是OpenSymphony开源组织在Job scheduling领域又一个开源项目&#xff0c;完全由Java开发&#xff0c;可以用来执行定时任务&#xff0c;类似于java.util.Timer。但是相较于Timer&#xff0c; Quartz增加了很多功能&#xff1a; 1.持久性作业 …...

drools8尝试

drools7升级到drools8有很大很大的变更.几乎不能说是一个项目了. 或者说就是名字相同的不同项目, 初看下来变化是这样 两个最关键的东西都retired了 https://docs.drools.org/8.42.0.Final/drools-docs/drools/migration-guide/index.html business central变成了一个VS code…...

【机器学习】python基础实现线性回归

手写梯度下降的实现ykxb的线性回归 算法步骤&#xff1a; &#xff08;1&#xff09;构造数据&#xff0c;y3*x5; &#xff08;2&#xff09;随机初始化和&#xff0c;任意数值&#xff0c;例如9,10; &#xff08;3&#xff09;计算&#xff0c;,并计算 &#xff08;4&…...

cms系统模板/seo的中文是什么

在我们平常开发的过程中&#xff0c;在添加或修改数据之前&#xff0c;为了避免有些数据重复问题&#xff0c;我们通常的做法都是先去数据库里面根据某个字段去数据库里面查询下这条数据是否存在。比如&#xff0c;会员注册的问题&#xff0c;一般会员的账号或者会员昵称都要求…...

阿里云 做网站 百度开放云/百度指数免费查询

为大家分享一款专业的音乐标签及管理工具&#xff0c;Yate for mac主要用于标记和整理你的音频文件&#xff0c;你可以轻松编辑音乐文件的元标签数据&#xff0c;Yate for mac支持AIFF、DFF、FLAC、M4A、M4B、MP3、MP4等格式的音频文件&#xff0c;不管是自动还是手动标记文件都…...

做网站教学书/推广平台怎么找客源

Tomcat对于J2EE或Java web开发者而言绝不陌生&#xff0c;但说到Realm&#xff0c;可能有些人不太清楚甚至没有听说过&#xff0c;那么到底什么是Realm&#xff1f;简单一句话就是&#xff1a;Realm是Tomcat中为web应用程序提供访问认证和角色管理的机制。配置了Realm&#xff…...

网站建设 功能需求/竞价推广怎么样

首选的FTP服务器搭建方式安装vsftpd#查看当前系统版本 cat /etc/redhat-release CentOS release 6.6 (Final) #查看是否已经安装vsftpd rpm -qa | grep vsftpd #如果没有&#xff0c;就安装&#xff0c;并设置开机启动 yum -y install vsftpd chkconfig vsftpd on基于虚拟用户…...

赣州新闻发布会/seo优化排名工具

如何才能运营好一款棋牌游戏&#xff0c;是每个老板都着急想知道的事情&#xff0c;他们常常困惑于如何积累用户&#xff0c;如何带来流量&#xff0c;特别在棋牌游戏开发上线前期&#xff0c;由于经验不足、预判失误等情况&#xff0c;使得入不敷出&#xff0c;开始担惊受怕。…...

宁波网站seo报价/软文发稿网

1 摘要 本报告是在学习斯坦福大学机器学习课程前四节加上配套的讲义后的总结与认识。前四节主要讲述了回归问题&#xff0c;回归属于有监督学习中的一种方法。该方法的核心思想是从连续型统计数据中得到数学模型&#xff0c;然后将该数学模型用于预测或者分类。该方法处理的数据…...