甲骨文(Oracle)每季度的例行重要补丁更新,修复了 301 个安全漏洞,其中有 45 个被列为严重(Critical)等级,在 CVSS 漏洞评分系统上达到 9.8 分,最严重的CVE-2018-2913 为 10 分。cve-2018-2913复现!!
CVE-2018-2913是Oracle GoldenGate组件中的漏洞(子组件:Monitoring Manager),该组件一般监听在7809端口,通过未经身份验证的远程攻击者提供格式错误的命令,就可能发生堆栈缓冲区溢出,从而导致该程序崩溃而无法正常运行甚至导致Oracle GoldenGate的接管。目前受影响的版本为12.1.2.1.0,12.2.0.2.0和12.3.0.1.0。
Oracle GoldenGate用于在各种企业系统间以亚秒级速度复制和集成事务数据,是同类最佳的、易于部署的产品。Oracle GoldenGate 可以灵活地在同类和异类系统(包括不同版本的 Oracle Database、不同的硬件平台)之间以及 Oracle 数据库和非 Oracle 数据库(包括 Microsoft SQL Server、用于开放系统和 z/OS 的 IBM DB2、Sybase 等等)之间移动数据。
CVE-2018-2913复现
演示环境:(192.168.210.194 )Oracle GoldenGate version 12.3.0.1.0
./ggsci –> start mgr 启动mgr监听,到这里我们可以看到7809端口已经开始监听
通过python向7809端口发送恶意构造的包如下
执行脚本,观察ggserr.log日志,监听程序已经接收到数据包并处理
此时该程序已经崩溃,监听端口关闭
也就是说,针对开启Oracle GoldenGate组件中Monitoring Manager服务的服务器,只需要发送一个包,就可以导致对方服务崩溃。
CVE-2018-2913 调试
1.开启mgr服务,查看pid=29516
2.调试mgr服务;gdb –> attach 29516进行调试
3.bt 查看此时栈情况,初始化栈
经过分析,在服务启动后,溢出位置在#5,在该位置断点,发包,重新看栈信息。
可以看到,我们数据包中过长的aaa已经溢出,并且覆盖了内存地址,从而导致程序崩溃。
修复建议
领取专属 10元无门槛券
私享最新 技术干货