【网络安全】-文件上传漏洞

文件操作漏洞包括文件上传漏洞,文件包含漏洞,文件下载漏洞。

文章目录

前言  什么是文件上传漏洞?

文件上传的验证与绕过:

1.前端js验证:  

          Microsft Edge浏览器:

    Google Chrome浏览器:

2.后端黑名单与白名单验证

     黑名单验证

           白名单验证

3.内容及其它验证

总结


前言  什么是文件上传漏洞?

文件上传漏洞指hacker利用网站能让用户上传文件的功能,在上传过程中上传木马,直接连接或配合文件包含漏洞获取webshell,从而导致用户权限丢失,隐私泄露。

而hacker成功getshell后还可以长期控制受影响的网站或服务器,进行持续性的攻击和破坏,甚至会将受控制的服务器作为攻击其他目标的跳板,利用该服务器的资源和网络带宽发起更广泛的网络攻击。


文件上传的验证与绕过:

1.前端js验证:

  禁用js

 Microsft Edge浏览器:

右上方三个点,点击设置:

Cookie和网站权限->所有权限->JavaScript

  

点击JavaScript,允许关闭

Google Chrome浏览器:

右上方三个点,点击设置->隐私和安全->网站设置

下拉滚动条 内容->JavaScript,不允许使用。

2.后端黑名单与白名单验证
黑名单验证

[阻止已知的恶意实体访问网络资源]

定义:一种阻止机制,通过列出不受信任或已知有害的实体-IP地址、域名、用户ID、电子邮件地址等,来阻止这些实体访问网络资源。

特点

负面表列:以“负面表列”的方式禁止某些行为或访问。

灵活性较高:在识别出威胁后,可以快速地将其加入黑名单,以阻止其进一步活动。

安全性相对较低:虽然能有效阻止已知威胁,但是无法及时应对未知攻击或新出现的恶意实体。

绕过方式

1.大小写绕过:

例:upload第六题

2.点绕过:

例:upload第五题

3.空格绕过

例:upload第七题

4.双写绕过

例:upload第十一题

 5.htaccess特殊后缀解析

例:upload第四题

第一步:.png文件

<?php @eval($_POST[cmd]);  ?>

第二步:.htaccess文件

<IfModule mime_module>
AddHandler php5-script .gif          
SetHandler application/x-httpd-php   
</IfModule>

6.流数据(::$$DATA)绕过

例:upload第九题

白名单验证

通过限制访问权限来提高系统的整体安全性。

定义:一种权限机制,策略是一种严格的访问控制方法,只有白名单中的实体才允许访问网络资源,这种方式适用于对安全性要求较高的环境,如企业内部网络、关键业务系统等。

特点

正向表列:以“正向表列”的方式允许某些行为或访问。

安全性高:只有经过验证和信任的实体才能访问系统,从而有效防止未经授权的访问和恶意攻击。

灵活性较低:在需要允许新的实体访问时,白名单需要手动更新,会增加管理成本和时间。

绕过方式

1.文件格式验证mime绕过

修改 MIME 类型:
攻击者可以在上传文件时修改 HTTP 请求中的 Content-Type 头部,使其显示为一个无害的 MIME 类型(如 image/jpeg),但实际上传的是恶意脚本(如 PHP 脚本)。

利用客户端软件的漏洞:
有时,文件上传的客户端软件(浏览器插件或自定义上传工具)可能存在漏洞,允许用户绕过 MIME 类型的限制。

服务端验证不足:
如果服务端仅依赖客户端提供的 MIME 类型,而没有进行文件内容检查(如文件扩展名检查、文件签名检查、文件内容分析等),则攻击者可以通过修改 MIME 类型来绕过这些简单的安全检查。

2.%00截断

条件:php<5.3.4,magic_quotes_gpc函数关闭,get提交

例:upload第十二题

3.0x00截断

条件:php<5.3.4,magic_quotes_gpc函数关闭,post提交

例:upload第十三题

把%00换成0x00

或手动编码:

4.0xoa截断    ASCII->换行

3.内容及其它验证

1.文件头检测:

例:upload第十四题

直接页面截图,重命名为.txt文件,打开文件,将一句话木马黏贴进去,再进行重命名为3.png文件。

重命名的.png就有验证特征:

2.二次渲染

例:upload第十七题

上传的图片后,后端代码会重新生成画布 然后把上传的图片重新渲染一次,使得png(图片+木马)->png(图片)。

3.条件竞争

例:upload第十八题

实质:多个请求同时处理同一个文件或资源

第一次:

上传了一个恶意文件

服务器在将文件保存到磁盘后还需要进行一些额外的检查

验证失败

第二次:

上传了一个恶意文件

服务器在将文件保存到磁盘后还需要进行一些额外的检查

验证失败

......

第n次:

上传了一个恶意文件

服务器被占用

验证成功

4.函数验证

getimagesize / exif_imagestype  ->检测上传文件类型是否为图片

例:upload第十五题

与文件头检测没有大的区别。

文件上传漏洞防范措施:

1.修改文件存储路径:

将用户上传的文件存储在一个独立的目录下,避免与应用程序的代码混合在一起。同时,确保该目录的权限设置合理,防止未授权访问。

2.文件权限和访问控制设置

将上传的文件设置为只读权限,以防止被恶意修改。同时,限制用户对上传文件的访问权限,只允许特定的用户或角色访问这些文件。

3.限制文件上传

限制用户在一定时间内可以上传的文件数量,防止恶意用户进行无限制的文件上传。


总结

文件上传漏洞是一种常见的Web应用程序安全漏洞,它允许攻击者利用网站或应用程序中的文件上传功能,上传恶意文件到服务器上,并通过这些文件执行恶意代码,从而控制服务器、窃取数据或执行其他恶意操作。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/53785.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Taro实现微信小程序自定义拍照截图识别

效果图&#xff1a; 代码&#xff1a; <template><view class"lary-top" :style"{ height: ${topBarHight}px }"></view><Camerav-show"!canvasShow"class"camera-photo":style"{width: ${info.windowWidt…

LIO-SAM如何保存地图

一、找到LIO-SAM配置文件&#xff0c;路径为config/params.yaml&#xff0c;修改以下两项参数&#xff1a; savePCD: true # https://github.com/TixiaoShan/LIO-SAM/issues/3savePCDDirectory: "/home/slam/catkin_ws/src/maps" …

Http带消息头两种请求办法

API接口最近经常碰到&#xff0c;协调几个乙方来回对接&#xff0c;把我折腾晕了&#xff0c;索性自己写一个小的工具&#xff0c;导入历史数据。 获取平台免登录token 接口说明 URL Path&#xff1a;gateweb/bigm-dm/openApi/ologin/openLogin 说明&#xff1a;第三方免登…

Java架构师实战篇Redis亿级数据统计方案

目录 1 Redis亿个keys数据统计方案2 Redis聚合统计(SUNIONSTORE)3 Redis排序统计(LRANGE)4 值状态统计(bitmap)4.1 位图简介4.2 应用场景4.3 常用的命令4 基数统计(SADD)5 总结想学习架构师构建流程请跳转:Java架构师系统架构设计 1 Redis亿个keys数据统计方案 在 Web 和移动…

.NET 一款用于解密web.config配置的工具

01阅读须知 此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等&#xff08;包括但不限于&#xff09;进行检测或维护参考&#xff0c;未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失&#xf…

SpringBoot2:请求处理原理分析-接口参数解析原理(argumentResolvers)

一、知识回顾 我们知道&#xff0c;接口的参数&#xff0c;一般都要配上注解来一起使用。 不同的参数注解&#xff0c;决定了传参的方式不同。 为什么会这样&#xff1f; 如果让你设计接口参数解析&#xff0c;你会怎么做&#xff1f; 首先&#xff0c;我们知道方法参数是形…

机器学习之监督学习(三)神经网络

机器学习之监督学习&#xff08;三&#xff09;神经网络基础 0. 文章传送1. 深度学习 Deep Learning深度学习的关键特点深度学习VS传统机器学习 2. 生物神经网络 Biological Neural Network3. 神经网络模型基本结构模块一&#xff1a;TensorFlow搭建神经网络 4. 反向传播梯度下…

开源的 Windows 12 网页体验版!精美的 UI 设计、丰富流畅的动画

大家周二好呀&#xff01;博主今天给小伙伴们分享一款炫酷的 Windows 12 体验版&#xff0c;网页效果拉满&#xff0c;非常值得我们去尝试&#xff01; 如果你对未来的Windows操作系统充满期待&#xff0c;那么这款开源的Windows 12 网页体验版绝对不容错过&#xff01;这不仅…

consul配置ACL安全认证

文章目录 前言一、漏洞详情二、漏洞处理1.ACL相关介绍2.开启ACL3.创建令牌4.修改acl文件5.修改单节点consul启动配置文件6.重启consul 三、漏洞处理结果验证 前言 因为现阶段属于护网期,因此公司对服务器、业务的安全都很关注,只要再次期间被漏扫出来的漏洞&#xff0c;都需要…

tomcat是不是已经被Springboot集成了?

Tomcat 确实已经被 Spring Boot 集成。Spring Boot 通过其独特的“starter”模块&#xff08;如spring-boot-starter-web&#xff09;实现了对Tomcat的自动配置。当在Spring Boot项目中引入这个starter时&#xff0c;会自动引入相关的依赖&#xff0c;包括tomcat-embed-core、t…

C语言补习课——文件篇

来源&#xff1a;黑马程序员 第157讲 C语言操作文件概述 读取文件&#xff1a;输入流 写文件&#xff1a;输出流 读写的方向判断取决与参照&#xff0c;一般我们站在程序的角度判断读写方向。 第158讲 路径 基本概念 路径就是指文件在电脑中的位置&#xff0c;eg&#xf…

阿里旗下土耳其电商Trendyol计划进军欧洲市场

阿里旗下土耳其电商Trendyol计划进军欧洲市场 近年来&#xff0c;阿里巴巴集团在全球电商领域的布局持续深化&#xff0c;其旗下土耳其电商巨头Trendyol更是凭借其出色的市场表现和强劲的增长势头&#xff0c;成为了备受瞩目的焦点。近日&#xff0c;Trendyol宣布了一项重要战…

Java初步

背景 名字 Oak&#xff08;橡树&#xff09;改到一个岛&#xff08;疑似盛产咖啡&#xff09; Java之父 詹姆斯高斯林&#xff08;James Gosling&#xff09; sun公司研发 现在属于Oracle公司 把它称为甲骨文公司 应用 企业级应用开发 重点学习JavaSE&#xff08;Standa…

线性代数 第六讲 特征值和特征向量_相似对角化_实对称矩阵_重点题型总结详细解析

文章目录 1.特征值和特征向量1.1 特征值和特征向量的定义1.2 特征值和特征向量的求法1.3 特征值特征向量的主要结论 2.相似2.1 相似的定义2.2 相似的性质2.3 相似的结论 3.相似对角化4.实对称矩阵4.1 实对称矩阵的基本性质4.2 施密特正交化 5.重难点题型总结5.1 判断矩阵能否相…

JavaScript高级——函数中的this

1、this是什么&#xff1f; ① 任何函数本质上都是通过某个对象来调用的&#xff0c;如果没有直接指定就是 window 。 ② 所有函数内部都有一个变量 this 。 ③ 它的值是调用函数的当前对象。 2、如何确定 this 的值&#xff1f; ① test&#xff08;&#xff09;&#xff…

如何进行DAP-seq的数据挖掘,筛选验证位点

从样本准备到寄送公司&#xff0c;每一天都在“祈祷”有个心仪的分析结果&#xff0c;终于在这天随着邮件提示音的响起&#xff0c;收到了分析结果...... 分析前工作 爱基在进行数据分析之前&#xff0c;会有两次质控报告反馈给老师们。第一个&#xff0c;基因组DNA的提取质控…

springBoot 集成https

springBoot 集成https 1、springBoot默认的证书格式 pring Boot 需要 .p12 或 .jks 格式的证书。如果你只有 .pem 和 .key 文件&#xff0c;可以使用 openssl 工具将它们转换成 .p12 文件 2、转换.p12 我的证书文件如下&#xff0c;需要转换 2.1 下载openssl https://slpr…

苹果手机铃声怎么设置自己的歌?3个方法自定义手机铃声

苹果手机内部的手机铃声库只有固定的几首铃声&#xff0c;且都是纯音乐&#xff0c;比较单调&#xff0c;并不是所有用户都喜欢这些铃声。那么&#xff0c;苹果手机铃声怎么设置自己的歌呢&#xff1f;小编这里有3个方法&#xff0c;可以教大家如何将手机铃声设置成自己喜欢的歌…

Java 入门指南:Java 并发编程 —— 同步工具类 Semephore(信号量)

文章目录 同步工具类Semephore核心功能限制并发访问量公平与非公平策略灵活性与适应性 常用方法使用示例 同步工具类 JUC&#xff08;Java.util.concurrent&#xff09;是 Java 提供的用于并发编程的工具类库&#xff0c;其中包含了一些通信工具类&#xff0c;用于在多个线程之…

C语言-综合案例:通讯录

传送门&#xff1a;C语言-第九章-加餐&#xff1a;文件位置指示器与二进制读写 目录 第一节&#xff1a;思路整理 第二节&#xff1a;代码编写 2-1.通讯录初始化 2-2.功能选择 2-3.增加 和 扩容 2-4.查看 2-5.查找 2-6.删除 2-7.修改 2-8.退出 第三节&#xff1a;测试 下期…