文件上传漏洞及安全

文件上传

文件上传安全指的是攻击者通过利用上传实现后门的写入连接后门进行权限控制的安全问题,对于如何确保这类安全问题,一般会从原生态功能中的文件内容,文件后缀,文件类型等方面判断,但是漏洞可能不仅在本身的代码验证逻辑中出现安全问题,也会在语言版本,语言函数,中间件,引用的第三方编辑器等存在缺陷地方配合利用。另外文件上传也有多个存储逻辑,不同的文件存储方案也会给攻击者带来不一样的挑战!

靶场下载链接:

https://github.com/sqlsec/upload-labs-docker

前端JS检测绕过

由于只做了前端js校验,所以抓包绕过前端检验即可

.htaccess绕过(apache的解析配置文件)

.htaccess文件定义了哪个文件可以以脚本方式运行

<FilesMatch "^qaz*\.jpg$"> //文件匹配指令 匹配以qaz开头.jpg结尾的所有文件

SetHandler application/x-httpd-php //指定被匹配的文件按照php执行

MIME类型&文件头检测绕过

后端判断Content-Type字段 也就是MIME类型是否符合要求

不同后缀名的文件头都不一样

黑名单检测绕过

例如针对php后缀名做为黑名单,只有这个不能上传,其余都可以,这里可以尝试大小写绕过,冷门php3、php5等后缀名上传,或者黑盒的时候直接fuzz跑后缀名

字典下载:https://github.com/fuzzdb-project/fuzzdb

%00截断绕过

使用条件:

magic_quotes_gpc = Off

PHP版本小于5.3.4

url 上面 %00

post 下面 %00 然后url解码

逻辑不严谨-条件竞争

原理:

本来检测文件流程:用户上传 -> 服务器判断是否合规 -> 合规存储

错误逻辑:用户上传->服务器先存储->判断是否合规->不合规删除

这里就导致就算不合规,但是恶意文件在服务器停留了,这就可以实现条件竞争利用这个逻辑漏洞

先预知恶意文件路径,然后使用爆破模块疯狂请求

上传恶意文件内容:
<?php fputs(fopen('111.php','w'),'<?php eval($REQUEST[1]);?>');?>

一旦请求成功一次,就可以在同目录留下一个木马

二次渲染

后端语言会对图片进行二次渲染,让图片更好的呈现出来,但是这样就会造成一个图片里插入的脚本代码丢失的情况

先搞个正常图片,上传图片后导出渲染后的图片,然后对比

二进制对比

可以发现存在一直不变化的数据地方,将木马语句插入其中就行

move_uploaded_file函数缺陷

move_uploaded_file(temp_file, img_path)

$img_path可控的时候,还会忽略掉 $img_path后面的 /.

中间件解析漏洞

IIS

IIS 6 解析漏洞

该版本默认会将*.asp;.jpg 此种格式的文件名,当成Asp解析

该版本默认会将*.asp/目录下的所有文件当成Asp解析。

如:logo.asp;.jpg、xx.asp/logo.jpg

IIS 7.x 解析漏洞

在一个文件路径(/xx.jpg)后面加上/xx.php会将/xx.jpg/xx.php 解析为php文件

Apache

未知扩展名解析漏洞 <=2.4.23

不识别即向前解析(低版本2.4.23以下版本都可以)

例如.php.dsd dsd后缀名解析不了,则向前php解析

换行解析漏洞(CVE-2017-15715)2.4.0-2.4.29

条件:

  1. 符合漏洞版本2.4.0~2.4.29
  2. 有文件上传点
  3. 能够重命名上传文件

上传成功

多后缀解析漏洞(配置问题,比较少见,和版本无关)

Nginx

00截断 cve-2013-4547(Nginx 0.8.41 ~ 1.4.3 / 1.5.0 ~ 1.5.7)

测试

解析漏洞(配置问题,比较少见,和版本无关)

编辑器上传漏洞

net.版本1.4.3文件上传

1、本地新建poc.html文件,文件内容如下,其中需将action修改成目标漏洞路径

shell addr:

2、制作aspx图片马上传至VPS并在所在目录启动http服务

3、打开poc.html后,输入vps的图片马地址,成功上传至目标服务器后,会返回webshell访问地址

4、使用Webshell管理工具连接指定地址即可成功连接webshell

文件上传安全

拒绝执行权限

文件上传的目录禁止执行权限,导致不能解析木马

绕过:

条件:

上传目录可控

上传目录可访问

控制上传目录到未被禁止执行权限的目录

解码还原

网站对上传的文件、图片以固定的data:image/png;base64, 传输解析数据

无法绕过

分站存储

将上传的文件存储到一台单独的服务器,一般该单独服务器是只拿来做存储使用,并且可能禁止执行权限,无法绕过

OSS存储

使用oss云存储服务,是第三方存储服务,一般遇到访问就下载文件,无法绕过

相关推荐
张3蜂6 小时前
跨站请求伪造(CSRF):原理、攻击与防御全解析
网络·安全·csrf
刘一说7 小时前
Nacos 权限控制详解:从开源版 v2.2+ 到企业级安全实践
spring boot·安全·spring cloud·微服务·nacos·架构·开源
CoderYanger11 小时前
动态规划算法-简单多状态dp问题:15.买卖股票的最佳时机含冷冻期
开发语言·算法·leetcode·动态规划·1024程序员节
CoderYanger11 小时前
递归、搜索与回溯-FloodFill:33.太平洋大西洋水流问题
java·算法·leetcode·1024程序员节
飞飞传输11 小时前
选对国产FTP服务器,筑牢数据传输安全防线,合规高效双达标
大数据·运维·安全
一起学安全技术12 小时前
C11期作业14(06.14)
web安全·网络安全
无名修道院14 小时前
渗透测试新手面试高频 50 题:原理 + 标准答案(2025)- 第三篇
网络安全·面试·职场和发展·渗透测试·内网渗透·免杀
晓翔仔14 小时前
智能汽车网络安全核心技术实践:基础防护与解决方案
安全·web安全·汽车
白帽黑客-晨哥14 小时前
基于零信任架构的现代网络安全防护体系研究:从理论到实践
安全·web安全·架构·量子安全
网安老伯14 小时前
什么是网络安全?网络安全包括哪几个方面?学完能做一名黑客吗?
linux·数据库·python·web安全·网络安全·php·xss