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

upload-labs 靶场(1~5)

免责声明

本博客文章仅供教育和研究目的使用。本文中提到的所有信息和技术均基于公开来源和合法获取的知识。本文不鼓励或支持任何非法活动,包括但不限于未经授权访问计算机系统、网络或数据。

作者对于读者使用本文中的信息所导致的任何直接或间接后果不承担任何责任。包括但不限于因使用本文所述技术而可能导致的法律诉讼、财产损失、隐私泄露或其他任何形式的责任。

在进行任何渗透测试或安全研究之前,请确保您已获得所有必要的授权,并遵守适用的法律和道德准则。未经授权的安全测试可能违反法律,并可能导致严重的法律后果。

本文中的内容仅供参考,不应被视为专业建议。在进行任何安全相关活动之前,建议咨询具有相应资质的专业人士。

作者保留对本博客文章的所有权利,并有权在未经通知的情况下进行修改或删除。

正文部分

前期准备:

        目标:学习文件上传漏洞的绕过

        系统环境:

                攻击机:Windows 10

                靶机:192.168.162.100:8084(Ubuntu ===> docker ===> uploads-labs)

        工具:

                Google浏览器、BurpSuite

Pass-01

这一关有两种绕过方式

方法一:关闭浏览器的 JS 功能

根据源码可以看出验证在前端

直接关掉浏览器的 js 功能,上传冰蝎🐎

连接🐎

方法二:修改数据包

为了避免🐎冲突,先把前面上传的🐎删掉。选择一个图片文件提交,用 bp 抓住数据包。为什么不直接上传 php 文件?原因是文件验证在前端,提交的时候如果不是白名单中的文件格式就提交不了,更不会将数据发送给服务器,导致抓不到数据包

将数据包发给 Repeater,将文件名修改一下,测试一下是否会上传成功

测试完成后,将修改好的数据包 Ctrl+A,Ctrl+C,然后回到 Proxy,全选、粘贴将原本数据包替换

放包,使用冰蝎连接🐎即可

Pass-02

这一关通过源码可以得出,只能上传图片类型的文件,那么就创建一个 txt 文本文档,将🐎写入,然后修改文件后缀为图片类型的后缀

接着上传这个“图片”,抓包,修改数据包,测试步骤这里就不做演示了

按照我这个方法的话就只用修改文件名,如果上传的是个 php 文件,那么就需要修改文件的 MIME

两种方法都行。放包,连接🐎

Pass-03

通过源码可以看出,这一关设置了黑名单,php 类型就在其中,那么还有什么文件后缀可以当作 php 文件进行解析?不知道就找一下度娘

这个 phtml 一下就入了我的法眼,就用它吧

放包,连接🐎

怎么回事?连接失败,原来是后端给打编号了

重振旗鼓,再来一次

Pass-04

从源码看出这一关拉黑的文件后缀还是挺多的,不过有一个配置文件忘了拉黑,那就是 .htaccess

.htaccess 文件是 Apache 服务器中的一个配置文件,用于实现各种服务器配置功能,比如文件类型关联

这个配置的意思是,所有图像类型的文件都当作 php 文件处理,所以接下来就先上传 .htaccess,然后上传图片🐎

放包

连接🐎

Pass-05

这一关,限制了 .httaccess 文件,不过解放了 .ini 文件,那么有 .user.ini 这么一个文件

.user.ini 文件是PHP配置文件的一种,它允许在用户目录中覆盖默认的 PHP 配置。这种文件通常用于存储用户特定的设置和偏好,采用键值对的形式,每行代表一个设置,键值之间使用等号连接

最具有代表性的就是这两段

auto_prepend_file = "header.php"
auto_append_file = "footer.php"

这个的意思是,在运行每个 php 文件之前,都会将指定文件包含进去当作 php 文件进行解析,那么接下来就将这个文件上传上去,然后上传图片🐎

放包,连接🐎。诶?没连上,发现这个 PHP 版本有点问题,换一个靶机,用小皮搞

收工

每一关都认真对待了,没划水、没摸鱼


http://www.mrgr.cn/news/78227.html

相关文章:

  • Android 13 编译Android Studio版本的Launcher3
  • JVM中TLAB(线程本地分配缓存区)是什么
  • 【Linux】Linux 内存管理机制
  • 电话机器人的发展历程
  • 一个专为云原生环境设计的高性能分布式文件系统
  • .net的winfrom程序 窗体透明打开窗体时出现在屏幕右上角
  • 学习日记_20241126_聚类方法(自组织映射Self-Organizing Maps, SOM)
  • WordCloud参数的用法:
  • DeSTSeg: Segmentation Guided Denoising Student-Teacher for Anomaly Detection
  • 【笔记】轻型民用无人驾驶航空器安全操控
  • 零基础3分钟快速掌握 ——Linux【终端操作】及【常用指令】Ubuntu
  • webrtc 3A移植以及实时处理
  • Java进阶六-多线程
  • 使用系统内NCCL环境重新编译Pytorch
  • 基于Kubernetes编排部署EFK日志收集系统
  • 16 —— Webpack多页面打包
  • 【346】Postgres内核 Startup Process 通过 signal 与 postmaster 交互实现 (5)
  • NUXT3学习日记四(路由中间件、导航守卫)
  • Python的3D可视化库 - vedo (3)visual子模块 点对象的可视化控制
  • 【小白学机器学习35】数据表:整洁数据表,交叉表/列联表,以及两者转化pd.pivot_table()
  • 深度学习基础1
  • WinFrom调用webapi接口另一个方法及其应用实例
  • JVM调优篇之JVM基础入门AND字节码文件解读
  • STM32C011开发(2)----nBOOT_SEL设置
  • LLamafactory 批量推理与异步 API 调用效率对比实测
  • 【11-20期】Java面试进阶:深入解析核心问题与实战案例