2020年1月15日,Oracle 1月补丁更新公告,其中发布多了多个漏洞的补丁,其中涉及多个远程代码执行漏洞。其中以下两个高危漏洞(CVE-2020-2546, CVE-2020-2551)会直接影响 Oracle Weblogic Server 系统权限。CVE-2020-2546,CVE-2020-2551 无需远程攻击者具有后台访问权限,远程攻击者可以通过精心构造的请求包进行恶意代码执行,该问题会导致攻击者在受影响的 Oracle Weblogic Server 上进行远程代码执行。
CVE-2020-2546
受影响版本
WebLogic Server 10.3.6.0.0
WebLogic Server 12.1.3.0.0
CVE-2020-2551
受影响版本
Weblogic Server 10.3.6.0.0
Weblogic Server 12.1.3.0.0
Weblogic Server 12.2.1.3.0
Weblogic Server 12.2.1.4.0
其他非支持周期内的wls理论受到这两个漏洞的影响,请确认知悉。
将中间件版本修复到2020年01月发布的补丁集即可。
目前官方补丁集尚在测试中,正式发布时间为2020年01月31日。为确保期间安全过度,可以采取禁用t3和IIOP协议。(详细补丁修复流程等补丁正式发布后更新)
0、备份
备份WLS的config.xml配置文件
1、登陆weblogic管理控制台
浏览器输入
IP:端口/console
2、weblogic.security.net.ConnectionFilterImpl查找
找到如下选项内容:weblogic.security.net.ConnectionFilterImpl;若想方便查找,可在连接筛选器中输入:weblogic.security.net.ConnectionFilterImpl,在连接筛选器规则中查找到。
3、输入添加协议
在连接筛选器中输入:weblogic.security.net.ConnectionFilterImpl,在连接筛选器规则中
输入:ip allow t3
0.0.0.0/0 * deny t3 t3s
例子:
192.168.0.1 allow t3(从节点1的IP)
192.168.0.2 allow t3(从节点2的IP)
127.0.0.1 allow t3
0.0.0.0/0 deny t3 t3s
注:如果受管节点与管理节点不在同一ip上时,需要把受管节点ip添加为允许ip。
4、添加完毕后保存重启
再次使用python脚本检测漏洞,出现如下内容说明漏洞已修复
5、启动遇到问题
启动节点服务出现截图中错误时,需要进行节点服务的缓存的清理工作。进入从节点存放缓存路径。删除cache和tmp中的内容,重启启动weblogic服务。
6、回滚
如果禁用后应用始终出现问题,而怀疑由此操作导致,可以还原原备份的config.xml文件,重启服务进行回滚。
1、登陆weblogic管理控制台
浏览器输入
IP:端口/console
2、禁用IIOP
选择“服务”->”SERVERNAME”->”协议”,取消“启用 IIOP”的勾选。 并重启 Weblogic 项目,使配置生效。(这里的SERVERNAME指管理节点和受管节点的名称)
3、异常回滚。
选择“服务”->”SERVERNAME”->”协议”,勾选“启用 IIOP”的勾选。 并重启 Weblogic 项目,使配置生效。(这里的SERVERNAME指管理节点和受管节点的名称)
t3协议是WLS自用的一个协议,理论不应该对应用造成影响,如果规则设置不当,可能造成管理节点和受管节点通讯异常。
当然不排除部分极少数应用利用t3协议进行其他操作。如果需要,应该对相关IP端口开通白名单
Internet Inter-ORB Protocol(互联网内部对象请求代理协议),它是一个用于CORBA 2.0及兼容平台上的协议。
用来在CORBA对象请求代理之间交流的协议。Java中使得程序可以和其他语言的CORBA实现互操作性的协议。
这个协议的最初阶段是要建立以下几个组件部分:一个IIOP到HTTP的网关,使用这个网关可以让CORBA客户访问WWW资源;一个HTTP到IIOP的网关,通过这个网关可以访问CORBA资源;一个为IIOP和HTTP提供资源的服务器,一个能够将IIOP作为可识别协议的浏览器。
互联网内部对象请求代理协议(IIOP)是一个实现互操作性的协议,它使得由不同语言编写的分布式程序在因特网中可以实现彼此的交流沟通。它是行业战略性标准,也即公用对象请求代理程序结构(Common Object Request Broker Architecture,CORBA)中至关重要的一个部分
此协议主要用于互联网异构的异步调用。
应用可以通过RMI异步调用。
如果应用采用EJB或异构平台如C平台调用Java平台,则需要注意是否使用到IIOP的调用。
如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!
赞4
添加新评论0 条评论