靶场名称春秋云境靶场类型目录遍历漏洞目标说明靶场页面无交互功能需要挖掘后台存在的文件下载接口利用目录穿越漏洞读取服务器根目录下的 flag 文件拿到题目 flag。信息收集过程打开靶场首页观察前端页面页面仅有展示界面不存在按钮、表单等可交互功能无法直接从页面上找到利用点。首先查看题目提示提示指向后台文件下载接口/_admin/imgdownload.php。使用 Burp Suite 抓包构造 GET 请求直接访问该接口携带filename参数初始测试时传入普通参数服务器返回 200 状态码证明该 PHP 接口真实存在并且参数可控确认接口可以正常接收我们传入的 filename 参数具备进一步测试的条件。使用的工具Burp Suite Professional用于构造、发送 HTTP 请求查看服务器响应包内容。关键漏洞点imgdownload.php中的filename参数对用户输入没有做../路径字符过滤直接将用户传入的参数拼接到文件读取函数中攻击者可以通过../向上跳转目录跳出网站 Web 工作目录读取服务器本地任意文件。注意该接口响应头中ContentDisposition: attachment; filenameflag.png只是 HTTP 下载头仅用来定义浏览器下载弹窗显示的文件名不是服务器磁盘上真实读取的文件名不能被这个返回头迷惑真实文件内容存放在 HTTP 响应包的响应正文当中。利用过程概述在 Burp Suite 的 Repeater 模块构造 GET 请求请求路径为/_admin/imgdownload.php给filename参数传入../进行目录向上跳转不断叠加../尝试跳出 web 站点目录使用../../../../flag作为参数值多次../回退到服务器根目录读取根目录下的 flag 文件。发送请求之后服务器返回 HTTP/2 200 OK观察响应包虽然响应头告知浏览器下载文件名为 flag.png但是直接查看 Response 响应正文正文内直接输出了目标 flag 字符串不需要下载保存 png 文件直接从响应数据包中提取 flag 即可完成解题。修复建议对filename用户输入进行严格过滤直接拦截、替换../、..\这类目录跳转字符使用白名单机制限制仅允许读取指定文件夹内的文件将用户传入文件名拼接固定的基础目录使用realpath()函数校验最终文件路径确保文件不会跳出预设的允许访问目录禁止直接把用户可控输入作为文件路径传入readfile()等文件读取函数文件下载功能不要直接暴露后台接口增加身份鉴权校验。本题总结这道 CVE 靶场的前端页面没有任何交互点漏洞藏在后台的文件下载接口很容易被响应头里的flag.png误导误以为需要处理图片文件实际上这只是 PHP 写死的下载展示名称flag 直接明文放在响应体。解题核心就是理解../代表向上跳转目录的原理利用未过滤的文件下载参数实现目录穿越读取任意文件做这类题重点关注抓包后的完整响应包不要只看响应头多观察响应正文返回的内容。