CVE-2019-0227: Apache Axis RCE
字数 1697 2025-08-29 08:32:18
Apache Axis RCE漏洞分析报告 (CVE-2019-0227)
1. 漏洞概述
CVE编号: CVE-2019-0227
漏洞类型: 服务器端请求伪造(SSRF)导致远程代码执行(RCE)
影响组件: Apache Axis 1.x版本
漏洞等级: 高危
发现时间: 2019年1月
公开时间: 2019年4月
2. 受影响环境
- 运行Apache Axis 1.x版本的系统
- 特别是保留了默认安装中的
StockQuoteService.jws示例服务的系统 - 理论上也影响Axis2,但Axis2默认不包含类似的示例服务
3. 漏洞原理分析
3.1 核心问题
漏洞存在于Apache Axis默认安装的StockQuoteService.jws示例服务中,该服务会向www.xmltoday.com域名发起HTTP请求来获取股票价格信息。
关键问题点:
- 使用硬编码的过期域名(
www.xmltoday.com) - 使用不安全的HTTP协议而非HTTPS
XMLUtils.newDocument方法会遵循HTTP重定向
3.2 漏洞利用链
- SSRF漏洞:攻击者可以控制发送给
www.xmltoday.com的symbol参数 - 域名控制:由于
www.xmltoday.com域名已过期,可被任何人注册 - 重定向滥用:攻击者注册该域名后,可设置重定向到
localhost上的特定URL - 权限提升:Axis以管理员权限处理
localhost的请求
3.3 技术细节
XMLUtils.newDocument方法的关键属性设置:
HttpURLConnection connection = (HttpURLConnection)url.openConnection();
connection.setInstanceFollowRedirects(true); // 关键设置,允许重定向
4. 漏洞利用方式
4.1 直接利用方式
- 注册控制
www.xmltoday.com域名 - 设置域名重定向到
localhost上的恶意URL - 诱导目标服务器访问
StockQuoteService.jws服务 - 通过重定向实现本地服务调用,最终获取RCE
4.2 中间人攻击(MITM)方式
适用于内网环境:
- 对目标Axis服务器进行ARP投毒
- 拦截转发所有流量到攻击者控制的web服务器
- 筛选并重定向特定请求到精心构造的
localhostURL - 触发HTTP请求,重定向到
StockQuoteService.jws
5. 漏洞验证与复现
5.1 环境准备
- Apache Axis 1.4
- Apache Tomcat 8.5
- 保留默认的
StockQuoteService.jws服务
5.2 复现步骤
- 访问目标服务器的
StockQuoteService.jws服务 - 构造恶意请求,控制symbol参数
- 观察服务器行为,验证是否遵循重定向
6. 修复方案
6.1 临时缓解措施
- 删除示例服务:移除Axis根目录下的
StockQuoteService.jws文件 - 网络隔离:限制Axis服务器的出站网络连接
- 协议升级:确保所有外部请求使用HTTPS并验证证书
6.2 官方补丁
Apache已发布补丁,主要修改:
- 防止
XMLUtils.newDocument滥用重定向功能 - 增强对外部请求的安全检查
7. 时间线
- 2019年1月15日:漏洞报告给Apache
- 2019年1月27日:Apache确认漏洞
- 2019年3月12日:Apache发布SSRF补丁
- 2019年4月2日:分配CVE编号
- 2019年4月10日:漏洞公开披露
8. 防御建议
- 升级迁移:考虑从Axis迁移到更现代的框架如Axis2、Apache CXF或Metro
- 代码审计:检查所有使用HTTP外部请求的服务
- 最小权限:确保Axis服务不以管理员权限运行
- 网络监控:监控对
xmltoday.com等可疑域名的访问
9. 相关资源
10. 总结
CVE-2019-0227展示了默认安装配置和硬编码凭证带来的安全风险,特别是当这些配置依赖于外部资源时。此漏洞也强调了及时更新淘汰旧组件的重要性,以及全面移除示例代码在生产环境中的必要性。