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

文件上传-Windows点号绕过

[题目信息]:

题目名称题目难度
文件上传-Windows点号绕过1

[题目考点]:

Windowsw文件系统对于.号,空格等符号的处理

[Flag格式]:

SangFor{2_LHZmrVlIN6uJHH0RTGh1JvQjFP2uyO}

[环境部署]:

docker-compose.yml文件或者docker tar原始文件。

docker-compose up -d

[题目writeup]:

1、实验主页

2、对于上传点的测试思路

3、首先判断是服务端检测还是服务端检测

创建一个.xxx的任意文件;

上传.jpg后缀文件,并使用burp抓包;

通过回显,可以看出文件储存位置和文件名;

1、通过burp修改文件后缀为php,查看是否有上传检测;

通过回显结果可以看出存在后端验证,那接下来的绕过思路可以分为两步;

  1. 确认是白名单验证还是黑名单验证;
  2. 如果是黑名单验证确认服务器是windows系统还是linux系统;
  3. 如果是白名单,在后面题目再进一步分析;

2、上传任意文件后缀,判断是黑名单还是白名单检测;

黑名单验证;简单的理解,黑名单验证即不允许用户上传什么样的文件;白名单验证;即为只允许用户上传什么样的文件;

如果文件名为xxx.xxx的文件上传成功,则证明后端验证为黑名单检测,一般情况下,黑名单验证仅不允许如.php等文件后缀;

通过回显,可以判断,后端代码在检测文件后缀的同时,同时检测了文件头需符合图片内容标准;

修改文件头为GIF89a,动态GIF图片是一个以GIF89a开头格式存储的文件

uploading.4e448015.gif正在上传…重新上传取消

xxx文件能够上传成功,则证明服务器后端验证属于黑名单格式;

3、验证服务器操作系统

当验证后端代码属于黑名单验证时,由于Windows和Linux文件系统有较大的差异,下一步需要测试服务器的操作系统是Windows还是Linux;

验证Windows操作系统还是Linux操作系统可以通过改变url地址的大小写加以区分,Windows操作系统大小写不敏感,Linxu操作系统大小写敏感;

我们将upload.php修改为Upload.php,可以成功访问,因此可以证明服务器操作系统为Windows;

现在已经验证:

  1. 服务器后端为黑名单验证;
  2. 服务器操作系统为Windows;

因此可以利用Windows操作系统文件系统对点号处理的特性:

当我们创建一个文件,当它的文件名以点好结尾时,会自动去除点好;

我们便可以利用该特性,上传一个xxx.php.的文件绕过后端代码黑名单的验证。同时,保存在Windows系统时,会去除点好,保证php文件的正常访问解析

访问/upload/test.php,成功解析php文件;

获取flag请学员思考测试;

相关文章:

  • CSS3 圆角:实现与优化指南
  • 知识拓展:Python 接口实现方式对比:Protocol vs @implementer
  • 跨平台开发--Weex
  • 【算法通关村 Day12】字符串
  • 计算机毕业设计SpringBoot+Vue.js视频网站系统(源码+文档+PPT+讲解)
  • Python爬虫实战:自动抓取微博热搜并根据帖子生成词云图
  • 【LLM系列】Deepseek-R1模型详细介绍
  • MySQL -安装与初识
  • C++模拟实现map和set
  • 延迟扩展衰落信道、AWGN、Rayleigh、Rician信道,FMCW雷达的距离、角度、速度信息
  • 前端(vue)学习笔记(CLASS 2):进阶
  • ffmpeg av_find_input_format的作用
  • Windows下不建议使用C/C++运行库的本地化功能
  • transformer架构的语言模型保存的内容与格式详解
  • 【Maven】-- Maven Scope 详解
  • 【一文入门】shell语法进阶篇
  • 鸿蒙next 点击穿透实现
  • org.springframework.boot不存在的其中一个解决办法
  • JAVA面试_进阶部分_Linux面试题
  • Idea 中 Project Structure简介
  • 新造古镇丨上海古镇朱家角一年接待164万境外游客,凭啥?
  • 北京朝阳涉住宅组团地块126亿元成交
  • 春暖花开,为何皮肤却闹起了小情绪?
  • 人民时评:投资于人,促高质量充分就业
  • 夜读丨庭院春韵
  • 我国首个核电工业操作系统发布,将在华龙一号新机组全面应用