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

049-WEB攻防-文件上传存储安全OSS对象分站解析安全解码还原目录执行

049-WEB攻防-文件上传&存储安全&OSS对象&分站&解析安全&解码还原&目录执行-cnblog

Untitled

#文件-解析方案-执行权限&解码还原

1、执行权限

  • 文件上传后存储目录不给执行权限
  • 原理:开启禁止目录执行,将服务器的文件上传后存储目录,取消读取和执行的权限

Untitled

  • 由于文件上传功能并未做过滤,直接上传包含后门的木马文件shell.php上传成功即可发现,phpinfo被执行了,该文件被解析为php脚本

  • 当在小皮网址配置的选择安全配置→开启禁止目录执行→将禁止执行的目录设置为上传目录(/1/upload)

  • 开启后,再次访问上传的木马文件,发现报错403,至此文件上传漏洞不能被利用

Untitled

Untitled

如何判断

1.如果目录下已经上传进去木马文件,访问其上传路径发现报错403禁止访问,可能是文件上传后存储目录不给执行权限

Untitled


2、解码还原

Untitled

数据做存储,解析固定(文件后缀名无关)
文件上传后利用编码传输解码还原

  1. 当服务器把上传的文件,利用base64编码编码为数据存储,也就是说从根本上解决了文件上传漏洞的问题,以数据存储就没有其他类型的文件解析即使上传后门文件,最后也是被当成图片去解析,由固定的协议去解析数据(data:image/png;base64,base数据)
// 处理文件上传
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_FILES['file'])) {// 获取上传的文件信息$file = $_FILES['file'];// 获取文件名和临时文件路径$filename = $file['name'];$tmpFilePath = $file['tmp_name'];**// 将文件内容转换为Base64编码$base64Data = base64_encode(file_get_contents($tmpFilePath));**// 输出Base64编码的文件内容echo $base64Data;// 如果是图片文件,可以将其在页面上显示echo '<img src="data:image/jpeg;base64,' . $base64Data . '" alt="上传的图片">';
}
?>

Untitled

如何判断是解码还原

在上传文件的时候,抓取数据包,如果发现是由固定的协议(data:image/png;base64,base数据)则就是解码还原

Untitled


#文件-存储方案-分站存储&OSS对象

1、分站存储

upload.xiaodi8.com 上传
images.xiaodi8.com 存储另一台服务器,目录权限锁死,只提供存储服务,不提供解析服务,即使上传木马文件,连接后门也无用

存储图片在另一台服务,有关于上传文件还使用base64编译为数据,进一步放置了文件上传的隐患

如何判断分站存储?

上传图片后,查看图片URL地址中的域名是否和目标上传地址一致,如果不一致则是分站存储

Untitled

Untitled


2、OSS对象

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

上传的文件只能当作一个网盘来看,不提供解析服务,只提供下载

Untitled

#如何判断

如果访问上传的文件路径,发现访问及下载,多半是OSS对象

Untitled

#安全绕过

以上方案除目录设置权限如能换目录解析绕过外

其他均无解

  1. 控制上传文件的的存储目录,绕开开启限制执行的目录即可

Untitled

Untitled

http://www.hskmm.com/?act=detail&tid=9827

相关文章:

  • 云原生周刊:MetalBear 融资、Chaos Mesh 漏洞、Dapr 1.16 与 AI 平台新趋势
  • AI一周资讯 250913-250919
  • 045-WEB攻防-PHP应用SQL二次注入堆叠执行DNS带外功能点黑白盒条件-cnblog
  • linux 命令语句
  • 用 Kotlin 实现英文数字验证码识别
  • 达芬奇(DaVinci Reslove)字体文件 bugb标签
  • 语音芯片怎样挑选?语音芯片关键选型要点?
  • KingbaseES Schema权限及空间限额
  • HTTP库开发实战:核心库与httpplus扩展库示例解析
  • QMT交易系统向服务器同步订单丢失问题排查
  • 笔记1
  • 用 Python 和 Tesseract 实现英文数字验证码识别
  • 实用指南:OSPF特殊区域、路由汇总及其他特性
  • 禅道以及bug
  • 中电金信 :MCP在智能体应用中的挑战与对策
  • 第一次参与开源的时序数据库 IoTDB Committer:这份成就感是无可替代的
  • ECT-OS-JiuHuaShan 框架元推理的意义、价值、作用、应用场景和哲学理念的充分阐述:AGI奇点
  • CSP 2025 复赛复习总目标与计划
  • mysql区分大小写吗,你可能忽略了这些关键细节
  • route-link 和 a 的区别
  • WPF 调用 Windows 桌面右键新增文件菜单的实现方案
  • HR 需了解的绩效评估应包含的内容
  • 解题报告-P12022 [USACO25OPEN] Hoof Paper Scissors Minus One B
  • CentOS架构修改网卡命名的方法总结
  • np.clip的使用
  • 重看P4211 [LNOI2014] LCA 以及 P5305 [GXOI/GZOI2019] 旧词 题解
  • 25.9.19随笔联考总结
  • 解题报告-P12025 [USACO25OPEN] Sequence Construction S
  • 解题报告-P12026 [USACO25OPEN] Compatible Pairs S
  • maxu