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

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

文章目录

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

文件上传的验证与绕过:

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.rhkb.cn/news/421402.html

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

相关文章

[WEBPWN]BaseCTF week1 题解(新手友好教程版)

WEB A Dark Room 这道题的考点是查看网页源代码 网页源代码这里看到的是网页的html css js在用户浏览器上执行的代码 有时候很多铭感信息&#xff0c;或者关键信息。 查看网页源代码的几种方式 1 右键点击查看网页源代码 2 F12 3 Ctrl U 快捷键 HTTP是什么 HTTP&#x…

【F179】基于Springboot+vue实现的幼儿园管理系统

作者主页&#xff1a;Java码库 主营内容&#xff1a;SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app等设计与开发。 收藏点赞不迷路 关注作者有好处 文末获取源码 项目描述 系统管理也都将通过计算机进行整体智能化操作&#xff…

Redis学习Day3——项目工程开发`

扩展阅读推荐&#xff1a; 黑马程序员Redis入门到实战教程_哔哩哔哩_bilibili 使用git命令行将本地仓库代码上传到gitee/github远程仓库-CSDN博客 一、项目介绍及其初始化 学习Redis的过程&#xff0c;我们还将遇到各种实际问题&#xff0c;例如缓存击穿、雪崩、热Key等问题&…

IGNAV_NHC分析

extern int nhc(insstate_t *ins,const insopt_t *opt,const imud_t *imu)函数名 insstate_t* ins IO ins state insopt_t* opt I ins options imud_t* imu I imu measurement data return : 1 (ok) or 0 (fail) 用NHC进行约束&#xff0c;其实用NHC做量测去…

从大脑图谱/ROI中提取BOLD信号

动机 在功能连接&#xff08;Functional Connectivity&#xff0c;FC&#xff09;构建过程中&#xff0c;由于FC中元素数目是节点数目的平方关系&#xff0c;所以在计算FC之前进行数据降维是一个常见的选择。 一般会将体素级/顶点级BOLD信号&#xff08;在2mm的图像分辨率下大脑…

Android libui新加接口,编译报错:error: Please update ABI references

1.背景信息 由于项目需要,要合入google的bug fix:https://cs.android.com/android/_/android/platform/frameworks/native/+/2c1782c6f986debe5ec89d5cdd3a3f08b08d5683 查看google的修改发现,对Transform.h 增加了一个方法:android::ui::Transform::det。合入修改之后,我…

NXP,S32K1XX汽车通用微控制器开发笔记

文章目录 1. 概述2. 开发环境配置2.1 S32 Design Studio2.2 安装SDK2.3 新建demo工程2.4 字体配置2.5 按需求修改demo2.5.1 修改pin脚定义2.5.2 增加串口打印功能2.6 编译代码2.7 debuger 配置参考1. 概述 S32K1系列32位微控制器(MCU)提供基于Arm Cortex-M的MCU,以及基本的…

pycharm中函数或方法的跳转以及返回

跳转 跳转很方便&#xff0c;ctrl 函数名即可。 跳转返回 有自带的回退按钮&#xff0c;找到视图->外观->工具栏&#xff0c;选中工具栏&#xff0c;这样就能出现箭头按钮&#xff0c;左箭头就是回退&#xff0c;右箭头前进。 快捷按钮可以为&#xff1a; 回退&…

Docker高级管理之compose容器编排与私有仓库的部署

Compose容器编排 Compose&#xff1a;容器的编排技术&#xff08;可以管理多个容器&#xff09;&#xff0c;移植性、迁移性更强 查看使用的Compose的版本&#xff1a;docker-compose -v 首先创建一个编排文件 文件内容 compose文件格式&#xff1a; 缩进&#xff08;严格意…

基于SpringBoot+Vue的房屋租赁管理系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、SSM项目源码 系统展示 【2025最新】基于JavaSpringBootVueMySQL的房屋租赁…

【Linux C | 终端设备】Linux下 tty、ttyS*、ttyAMA*、console 的区别,以及系统输出重定向(附带代码)

&#x1f601;博客主页&#x1f601;&#xff1a;&#x1f680;https://blog.csdn.net/wkd_007&#x1f680; &#x1f911;博客内容&#x1f911;&#xff1a;&#x1f36d;嵌入式开发、Linux、C语言、C、数据结构、音视频&#x1f36d; ⏰发布时间⏰&#xff1a; 2024-09-11 …

RickdiculouslyEasy-CTF-综合靶场

步骤一&#xff1a;利用Goby搜索靶机地址 步骤二&#xff1a;访问靶机地址 步骤二&#xff1a;扫描端口 nmap 172.16.1.7 -p 1-65535 步骤三&#xff1a; 扫描目录 dirsearch -u http://172.16.1.7/ 第一个flag&#xff1a;命令&#xff1a;nmap -A -v -T4 172.16.1.7 -p 1-6…

RK3576芯片在智能家居里中型智慧屏产品的应用方案分析

智能家居在近年来得到了快速发展&#xff0c;AI技术不断发展&#xff0c;人机交互十分成熟&#xff0c;各种家电也都迎来了智能化浪潮&#xff0c;智能家居为人们提供了优秀的产品体验&#xff0c;受到主流消费者的青睐&#xff0c;智能家居里的中型智慧屏产品也随之兴起。 瑞芯…

2024最新盘点,主流生产报工软件有哪些?

本文将盘点知名的生产报工软件&#xff0c;为企业选型提供参考&#xff01; 各位生产经理有没有碰到过这种情况&#xff0c;产品生产从工单-报工-质检-入库的过程中不能实时知道任务进度&#xff0c;生产日报也不清晰&#xff0c;老是被客户催&#xff0c;上头领导不满意&…

Netty权威指南:Netty总结-编解码与序列化

第四章 TCP粘包/拆包问题 4.1 TCP 粘包/拆包 TCP是流协议&#xff0c;也就是没有界限的的一串数据&#xff0c;底层并不知道上层业务数据的具体含义&#xff0c;也就是说一个完整的包可能会被拆分成多个包进行发送&#xff0c;也可能把几个小包封装成一个大的数据包发送。这就…

自注意力机制 SANS(论文复现)

自注意力机制 SANS&#xff08;论文复现&#xff09; 本文所涉及所有资源均在传知代码平台可获取 前言 在NLP模型领域中&#xff0c;seq2seq是一种常见的模型结构&#xff08;序列到序列&#xff09;&#xff0c;其于 2013年、2014 年被多位学者共同提出&#xff0c;在机器翻译…

《Learning to Prompt for Vision-Language Models》CoOp论文中文校对版

系列论文研读目录 文章目录 系列论文研读目录摘要1 简介2 相关工作2.1视觉语言模型2.2 NLP中的提示学习 3 方法论3.1视觉语言预训练3.2上下文优化3.3讨论 4 实验4.1少数学习4.2领域泛化4.3进一步分析 5 结论、局限性和未来的工作 摘要 像CLIP这样的大型预训练视觉语言模型在学…

天通报警呼叫柱:为边防哨所筑起坚固的通信堡垒

一、背景 边防哨所是国家安全的重要防线&#xff0c;肩负着守护边境安全、维护国家主权和领土完整的神圣使命。由于边防哨所通常位于地理位置偏远、环境恶劣的地区&#xff0c;通信问题成为影响边防工作的重要因素&#xff0c;给边防官兵的日常工作和应急响应带来了不小的挑战…

Vue 3 watchEffect:如何用 onInvalidate 优化副作用处理

在 Vue3 中&#xff0c;watchEffect 是一个用于在响应式数据变化时自动重新执行的函数。它在创建响应式副作用时特别有用&#xff0c;比如在某些数据变化时更新 DOM、发起网络请求或处理复杂的逻辑。 watchEffect 的 onInvalidate 是一个非常重要的功能&#xff0c;用于处理副…

blender我的对称模型好像中点被我不小心移动了 我现在如果雕刻 两边修改的地方不是对称的 我该怎么办

blender我的对称模型好像中点被我不小心移动了 我现在如果雕刻 两边修改的地方不是对称的 我该怎么办 首先请调整好模型确保左右前后对其相应的xyz轴 之后CtrlA应用变换 确保这些都归0且模型和xyz轴对应 如果在Blender中模型的中点&#xff08;对称轴&#xff09;不小心被移动了…