HotelDruid mostra_sorgente.php 文件读取漏洞复现
HotelDruid mostra_sorgente.php 文件读取漏洞复现
0x00 漏洞概述
HotelDruid 是由 DigitalDruid.Net 开发的开源酒店管理(物业管理)系统,基于 PHP 实现,凭借高度灵活的 Web 界面,适用场景覆盖从少量客房的家庭旅馆到拥有数百间客房的酒店。
该系统内置一个名为 mostra_sorgente.php 的页面(意大利语意为"显示源码"),其本意应是面向开发调试的辅助功能,但页面未做访问控制与参数约束:通过 file_sorgente 参数指定站点内文件路径即可读取对应文件内容,甚至在不传参数的情况下,页面也会泄露网站根目录下的文件信息。依据技术分析资料,该问题会泄露源码、数据库配置文件等敏感内容,攻击者可借此获取网站服务器的 Web 路径等关键信息,为进一步攻击提供帮助,使网站敏感信息面临暴露风险。
该漏洞无 CVE、CNVD、CNNVD 公开编号,公开漏洞库曾以"任意文件读取、高危"分类登记该问题。无官方 CVSS 评分,按无官方评分规则自评 6.5 分(中危),依据是:攻击效果为敏感文件批量泄露(可读取数据库配置)、利用门槛低(匿名 HTTP 请求即可)、影响对象为自建部署的酒店管理系统实例(单实例影响范围有限但信息价值高)。
0x01 复现环境与影响范围
影响范围
- 影响产品:HotelDruid(DigitalDruid.Net 出品)。
- 受影响版本:无公开编号与官方公告,无法精确圈定版本区间,以实测该页面行为为准。
- 暴露条件:
mostra_sorgente.php对外可匿名访问即成立,无需登录状态。 - 公开编号:无 CVE / CNVD / CNNVD;公开漏洞库另有登记条目(见 0x05 参考资料)。
需要特别区分:HotelDruid 历史上存在 SQL 注入、XSS、SSRF、远程代码执行等其他类型的公开漏洞条目,均与本条"mostra_sorgente.php 文件读取"无关,不能混用结论。
环境搭建
复现环境使用隔离的实验内网段(192.168.x.x),部署一套 HotelDruid 实例(常见安装路径为 Web 目录下的 hoteldruid/ 子目录),验证机与目标同网段。整个过程仅需一个 HTTP 客户端,无需认证凭据,不涉及任何破坏性操作。
0x02 漏洞复现
第一步:确认目标指纹。
访问系统任意页面,若响应体中出现 HotelDruid 字样或指向 inizio.php 的链接,即可确认目标为 HotelDruid 部署。
第二步:触发文件读取与目录泄露。
直接请求源码展示页面,file_sorgente 参数留空:
GET /hoteldruid/mostra_sorgente.php?file_sorgente= HTTP/1.1
Host: 192.168.1.20判定条件:返回 HTTP 200,且响应体中同时出现 inizio.php 与 creadb.php 字样。两者均为站点根目录下的脚本文件,同时以源码展示形式出现在响应中,说明页面正在把站点根目录下的文件内容直接输出给匿名访问者。
第三步:指定路径读取文件。
通过 file_sorgente 参数给定站点内相对路径,页面返回对应文件的源码内容,例如数据库配置文件、功能脚本等。结合第二步泄露的文件清单,攻击者可以逐个拉取根目录下的文件,还原整套源码结构并提取数据库连接凭据。
预期结果
- 匿名请求(无任何 Cookie)即可获得 HTTP 200 响应,服务端不存在登录拦截。
- 响应体包含
inizio.php、creadb.php等站点文件内容,文件读取成立。 - 泄露内容包括源码与数据库配置文件,可进一步推导服务器 Web 路径。
0x03 漏洞分析
从功能设计看,mostra_sorgente.php 属于典型的"调试后门"类页面:它把"读取并展示站点文件"这一本应仅存在于开发期的能力保留在了生产代码中,且没有叠加任何一层防护。具体薄弱点有三:
1. 无认证。页面可被匿名直接访问,任何能触达 Web 服务的客户端都能调用,认证与授权检查整体缺失。
2. 参数未约束。file_sorgente 参数未做目录限定与白名单校验,调用者可以指定站点内任意路径,等同于把文件系统的一个可读子集完全交出。
3. 默认即泄露。参数留空时页面仍会输出站点根目录下的文件信息,这意味着哪怕攻击者不了解参数细节,一次空参数请求也足以暴露站点结构。
危害传导路径非常清晰:空参数请求获取文件清单 → 定位数据库配置文件 → 读取源码获得连接串、密钥等凭据 → 结合数据库配置进一步攻击数据层。由于泄露内容包含数据库配置文件,该漏洞虽然交互简单,实际风险可以逐级放大,公开登记将其定级为高危、分类为任意文件读取是合理的。
0x04 修复建议
1. 核查公网、办公网边界及第三方托管环境中的 HotelDruid 部署,确认相关接口的暴露范围和版本。
2. 核对厂商公告中的受影响范围,升级至官方修复版本或更高版本;升级前备份配置和数据。
3. 暂不能升级时,关闭调试和示例接口,禁止配置文件直接访问,通过 ACL 或 VPN 限制访问来源。
4. 检查 Web 访问日志,发现敏感文件访问后立即轮换密码、密钥、会话等泄露凭据。
针对本漏洞的直接修复方式是:删除或禁用 mostra_sorgente.php;若业务确需保留源码查看能力,则必须限定可读取目录,并以白名单方式限定可读取路径,同时强制管理员会话认证。
0x05 参考资料
1. HotelDruid 厂商官网:https://www.hoteldruid.com/
2. 公开漏洞库登记条目(HotelDruid mostra_sorgente.php 文件读取,高危,任意文件读取分类;详情需登录查看,登记地址见技术分析资料留档)
3. 公开安全媒体历史登记页(原登记条目,链接当前已失效,返回 404):https://nosec.org/home/detail/6277.html

Wayyt 4小时前
最新评论