大汉 JCMS attach_dwn.jsp 任意文件读取漏洞复现

Wayyt  3小时前

大汉 JCMS attach_dwn.jsp 任意文件读取漏洞复现

0x00 漏洞概述

大汉内容管理系统由大汉软件股份有限公司开发,是基于 J2EE 技术体系构建的网站内容管理平台,常见于政府及企事业单位门户网站的建设场景。该漏洞存在于系统中 /jcms/m_5_1/attach_dwn.jsp 附件下载脚本:正常的下载功能处缺少安全处理,未对用户提交的文件路径参数做目录限制与过滤,未认证的攻击者可以直接通过 GET 请求携带服务器绝对路径,无限制地下载网站上的任意文件,例如网站源代码、数据库配置文件等敏感内容。攻击者获得这些敏感信息后,可进一步实施深入攻击。技术分析记录给出的评分为 6.5 分,属于中危级别的任意文件读取问题。该接口的触发无需任何登录凭据,利用成功与否可直接从响应内容判断。公开渠道未检索到对应的 CVE、CNVD 或 CNNVD 编号,也未检索到厂商发布的受影响版本通告。

0x01 复现环境

复现环境为部署于 Linux 系统上的大汉 JCMS 应用,通过中间件对外提供 HTTP 服务,示意地址为 192.0.2.10。目标站点满足以下产品指纹特征之一即可判定为大汉系产品:页面源码包含 Produced By 大汉网络 字样、包含指向 http://www.hanweb.com 的隐藏链接、包含 <me ta name='Generator' content='大汉版通'><me ta name='Author' content='大汉网络'> 声明,或页面中引用了 /jcms_files/jcms 路径。

漏洞入口为 JCMS 应用路径下的 /jcms/m_5_1/attach_dwn.jsp 脚本。该脚本位于前台可访问区域,路径中不含后台或管理目录前缀,默认无需认证即可直接访问。受影响版本方面,公开渠道无厂商公告与版本通告,无法给出确切的版本边界;凡部署了含该接口的大汉系统实例,均应视为潜在受影响对象。

0x02 漏洞复现

完整的复现链条为:未认证攻击者直接构造针对 attach_dwn.jsp 的 GET 请求,fpath 参数直接携带服务器上的绝对路径 /etc/passwdfilename 参数作为下载显示名;服务端下载脚本未做有效校验,读取文件并将内容写入响应;攻击者依据响应状态码与响应体中是否出现 passwd 条目行结构确认读取成功。

验证请求包如下,来自技术分析资料,可直接用于验证目标是否存在该漏洞:

GET /jcms/m_5_1/attach_dwn.jsp?filename=passwd&fpath=/etc/passwd HTTP/1.1
Host: 192.0.2.10
Content-Type: application/x-www-form-urlencoded
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/109.0
Accept: text/html,application/xhtml+xm l,application/xm l;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.9
Connection: keep-alive

其中 Host 为示意地址,实际验证时替换为目标站点地址。请求成功时,响应状态码为 200,响应体中包含形如下例的 passwd 条目行——每一行均为冒号分隔的多段格式(用户名、密码占位、UID、GID、用户描述、家目录、登录 Shell):

root:x:0:0:root:/root:/bin/bash
nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin

确认读取能力后,将 fpath 参数中的目标路径替换为其他敏感文件的绝对路径即可继续下载。依据该下载能力可合理推断(此为推断,需结合目标环境核实),常见可尝试目标包括应用目录下的数据库配置文件(含连接地址、账号与口令)、网站源代码文件以及 Web 容器配置等。

0x03 漏洞分析

attach_dwn.jsp 从命名与参数构成看是典型的附件下载入口:fpath 参数指定文件在服务器上的真实路径,filename 参数指定下载时的保存名。设计意图是按附件标识定位服务器文件并提供下载,问题在于脚本对 fpath 参数的处理完全信任用户输入——既未将可读取路径约束在附件目录等许可目录内,也未拒绝绝对路径形式的输入。攻击者在 fpath 中直接填入 /etc/passwd 即可越过许可目录边界;若目标部署在 Windows 系统上,同理可尝试 C:/ 开头的绝对路径(此为推断,需结合目标环境核实)。

值得注意的是,与常见的目录上跳写法不同,该接口的检测请求直接使用绝对路径而未携带 ../ 序列,说明服务端在拼接路径时很可能未对参数做任何规范化与限制,绝对路径本身即可生效;同时参数中也未见空字节或伪后缀,据此推断该脚本不存在下载类型白名单校验,属于未见下载类型校验逻辑的下载入口(以上均为基于请求构造形态的推断,公开资料中未提供该脚本的服务端源码)。

从响应侧看,技术分析资料中该请求的判定条件为:HTTP 状态码等于 200,且响应体匹配 passwd 条目行的标准结构。这一判定说明漏洞属于有回显的任意文件读取——文件内容被原样返回给请求方,而非仅触发侧信道差异,因此利用成功与否可直接确认。另外,公开层面 2013 年即有针对大汉版通 JCMS 多处任意文件下载问题的披露记录(见参考资料),涉及的 downfile.jspopr_readfile.jsp 等接口与本漏洞路径不同但同属文件下载功能缺少安全处理的同族问题,说明该产品线在文件路径参数处理上存在长期薄弱点。

0x04 修复建议

排查层面,建议对资产范围内的大汉系统部署逐一排查:依据 0x01 节所列页面指纹特征确认产品部署,随后核查 /jcms/m_5_1/attach_dwn.jsp 等下载类接口的暴露范围和版本;对 Web 访问日志进行回溯,重点检索 fpath 参数中出现绝对路径或目录上跳序列的请求,一旦发现敏感文件被访问的记录,应假定对应内容已泄露,立即轮换相关密码、密钥与会话凭据。

修复层面,公开渠道未检索到厂商修复公告,建议按以下顺序处置:

1. 核查公网、办公网边界及第三方托管环境中的大汉系统部署,确认 /jcms/m_5_1/attach_dwn.jsp 等接口的暴露范围和版本,升级前备份配置和数据;

2. 暂无官方修复版本可升级时,关闭或下线非必要的 attach_dwn.jsp 等下载接口,禁止配置文件直接访问,并通过防火墙等安全设备设置访问策略与白名单,或通过 ACL、VPN 限制访问来源;

3. 如非必要,禁止公网直接访问该系统;

4. 从代码层面根治:对下载功能入参做规范化处理,拒绝绝对路径与 ../ 上跳序列,将可下载路径约束在附件目录白名单内,并校验下载文件类型。

0x05 参考资料

1. 大汉版通 JCMS 内容管理系统任意文件下载漏洞,Seebug 漏洞平台收录(SSV-93885,2013-09-01,含 JCMS 多处任意文件下载接口细节,为大汉 JCMS 文件下载类同族问题的公开背景参考):https://www.seebug.org/vuldb/ssvid-93885

2. 大汉软件官方网站(产品背景):http://www.hanweb.com/

最新评论

昵称
邮箱
提交评论