资讯动态

【HTB-CPTS】第21章 File Upload Attacks(测验部分)

发布时间:2026/10/14 8:20:11 来源:尧图企业网站定制
文章目录前言一、前情回顾二、信息收集三、分析三、解析与利用总结前言本章节属于Tier 2 学院模块符合HTB的内容分享及发布指南如有侵权请联系博主删除。本文章将记录HTB-CPTS学院路径的第二十一章File Upload Attacks的最终box的通关过程以及后期的复盘。一、前情回顾请先完成章节知识学习请先完成章节知识学习请先完成章节知识学习文件包含可以说是最最最简单、常用的高阶技巧了从pdfxss垃圾洞、存储xss、到各种rce挂马、dos攻击都需要走文件上传一招鲜吃遍天的漏洞利用。在本章中我们学到了各种文件上传的绕过技巧而本章的单元测试也是很和谐的将所教的大部分技巧都融合进了最终的测试综合程度极高很有练习的价值。HintTry to fuzz for non-blacklisted extensions, and for allowed content-type headers. If you are unable to locate the uploaded files, try to read the source code to find the uploads directory and the naming scheme.二、信息收集上传抓包废话不多说不用目录扫描就能直接找到了上传点/contact看着是一个注册页面明显有图片上传。这里我们使用粱圣DeepSeek-v4.1-Flash的价目表进行尝试抓包注意到接口名叫/upload.php这个之后有用。有一个小坑这里的图片上传时机在按下绿色按钮的时候而不是点SUBMIT的时候第一次抓包没抓到图片人都蒙了hhh。黑白名单测试按照提示进行文件后缀名黑白名单的测试这里我选择使用Seclist的web扩展名大字典进行一把梭哈。注意在bp中取消勾选URL编码扫描结束后找到两类比较有意思的白名单文件类型图片类.svg等、双写绕过的php类.phar.jpg。三、分析在上一步中我们解析出 来了 .svg和.phar.jpg这时我们就会想到两条路1.由svg触发的xxe回显文件内容我们可以在 SVG 图像中使用以下载荷?xml version1.0 encodingUTF-8?!DOCTYPEsvg[!ENTITY xxe SYSTEM php://filter/convert.base64-encode/resourceindex.php]svgxxe;/svg2.经典的php马?phpsystem($_GET[cmd]);?那么我们一定会想到直接XXE 读/flag.txt不就结束了实际上我也是这么想的也这样去上传了但是并没有读取到任何内容也就是说实际的flag文件名并不是/flag.txt由此可以推出我们还是必须上传php马去根目录寻找flag文件。但是这又引出另一个新问题使用php码必须要知道文件上传的位置可以通过之前的抓包response以及表单submit成功后的结果进行分析得出服务器并没有显式的告诉我们图片究竟被上传到了哪里回显在我们页面上的图片也知识临时存储的客户端图片并没有办法通过网页源码找到图片的存储位置综合以上种种让我们再回顾一下HintHintTry to fuzz for non-blacklisted extensions, and for allowed content-type headers. If you are unable to locate the uploaded files, try to read the source code to find the uploads directory and the naming scheme.提示让我们读取上传源码来找到上传文件的保存位置。哦原来如此我们需要先通过利用xxe漏洞上传包含XML代码的.svg格式文件读取控制文件上传的接口源码/upload.php经过代码分析确定文件上传的存储规律最后通过上传包含一句话木马的.phar.jpg格式文件得到系统的shell以便寻找flag。提示已经告诉了我们一切说谢谢提示~三、解析与利用上传包含XML代码的.svg格式文件内容如下?xml version1.0 encodingUTF-8?!DOCTYPEsvg[!ENTITY xxe SYSTEM php://filter/convert.base64-encode/resourceupload.php]svgxxe;/svg由于xxe漏洞执行xml代码我们可以获得upload.php源码的base64编码解析后如下包括上传文件存储位置、文件命名规则、黑白MIME名单都在里面了。感兴趣的可以深入研究一下黑白MIME名单的漏洞在哪里以及如何修复~我们从源码中得知文件存储位置在/contact/user_feedback_submissions/命名规则是“年月日_文件名.文件格式”。我们以.phar.png格式上传经典一句话木马注意不要删掉png的文件头文件最前面几个字符。最终在/contact/user_feedback_submissions/260919_DS.phar.png成功找到了该文件运气很好服务器也成功将带有.phar的文件当成了php文件执行实际上是一个未经验证或发现就利用的漏洞。总结其实最近还完成了命令注入一章但因为实在是太简单了步骤和课程内容一模一样没有任何记录的必要。就跳过了。这次的目标是一个漏洞非常多的服务通过bp收集的信息可以发现后缀名基本是门户全开的情况但就在这种情况下后端的格子命名混淆也带来了不小的麻烦。还是那句话真实渗透情况只会更糟不断提升自己的知识面才能扩充打击面做到001的组合利用。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑