ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

春秋云镜靶场漏洞复现:CVE-2023-27179 GDidees CMS `imgdownload.php` 任意文件读取

春秋云镜靶场漏洞复现:CVE-2023-27179 GDidees CMS `imgdownload.php` 任意文件读取

环境:春秋云境“免费空间”授权实验靶场。本文仅记录授权靶场中的验证过程;历史实例已关闭。

1. 基本信息

项目 内容
CVE CVE-2023-27179
产品 GDidees CMS <= 3.9.1
漏洞类型 本地文件泄露 / 路径遍历
关键接口 /_admin/imgdownload.php
关键参数 filename
Flag flag{2c001ade-0fcf-4462-9e06-8694f2c6cdf3}
靶场状态 已攻克并关闭历史实例

题目页面确认 filename 参数是本地文件泄露入口,并显示当前账号“已攻克”:

GDidees CMS 题目详情与状态

2. 漏洞原理

后台图片下载脚本把 filename 参数直接用于文件读取,没有将规范化后的路径限制在图片目录内。攻击者可以用目录遍历或绝对路径语义跳出图片目录,读取 Web 应用源码、配置文件或题目 Flag。

3. 复现过程

3.1 确认文件下载入口

关键路由为:

/_admin/imgdownload.php

参数名为 filename。请求结构:

GET /_admin/imgdownload.php?filename=<path-to-/flag> HTTP/1.1
Host: <target>

在授权实例中将 <path-to-/flag> 替换为相对目录遍历或应用支持的绝对路径形式,观察响应是否返回文件正文。目标实例地址和原始遍历层数没有保存在本地历史记录中,因此这里不伪造完整 URL。

3.2 读取 Flag

验证条件为:

  1. 不需要后台登录即可访问下载脚本。
  2. filename 能跳出原定图片目录。
  3. 响应正文直接返回 /flag 内容。

平台记录 的已完成记录保存的响应结果为:

flag{2c001ade-0fcf-4462-9e06-8694f2c6cdf3}

4. 关键利用链

未认证访问 /_admin/imgdownload.php-> filename 用户可控-> 路径规范化/目录边界校验缺失-> 读取目录外 /flag-> HTTP 响应返回 Flag

5. 验证结果

历史验证记录中的 Flag 为:

flag{2c001ade-0fcf-4462-9e06-8694f2c6cdf3}

平台页面保留了“已攻克”状态和 Flag 验证输入框,见下图:

GDidees CMS Flag 验证页面

本题没有保存实例地址、原始请求或单独的命令输出;Flag 依据是 平台记录 的历史记录,平台状态依据是当前详情页复核。

6. 修复建议

  1. 升级 GDidees CMS 至包含修复的版本。
  2. 下载接口只接受服务端生成的图片 ID,不接受客户端路径。
  3. 对路径统一解码、规范化并验证固定根目录,拒绝 ..、绝对路径和符号链接逃逸。
  4. 对后台目录增加认证与授权,下载接口使用最小文件权限。
  5. 修复后回归测试编码遍历、双重编码、Windows 分隔符和空字节等形式。

7. 证据与参考

  • 平台题目详情页:https://yunjing.ichunqiu.com/cve/detail/1164?type=1&pay=2
  • NVD:CVE-2023-27179
  • 入口、Flag 和关闭状态:来自当前平台详情页及本地 免费空间全部靶场_平台记录.md 的已完成记录。
返回列表