1 什么是WebLogic
WebLogic是美国bea公司出品的一个webserver,如同我们使用的IIS,APACHE,确且的说是一个基于j2ee架构的中间件,webserver是用来构建网站的必要软件用来解析发布网页等功能,它是用纯Java开发的。目前WebLogic在世界webserver市场上占有最大的份额,其他还有像IBM的websphere,免费的tomcat、resin等webserver软件。
WebLogic对于整日游走于安全行业的人来说并不陌生,网站拥有者可利用WebLogic搭建web服务,可充分利用其扩展性、部署灵活、支持多种标准等优势来;所谓没有绝对的安全,所以作为成熟的产品WebLogic每年也会出现各种命令执行、反序列等通用漏洞,而做为攻击者就可充分利用这些漏洞去攻击系统危害用户利益。
WebLogic在世界排名前10的国家如下:
通过初步统计,WebLogic在国内的应用范围比较广,支撑着很多企业的核心业务,尤其是在金融、电力、政府等行业,其中还有很多内网应用系统。
国内中间件利用情况统计图如下:
2 WebLogic漏洞分析
随着近几年互联网的安全日益重视,WebLogic也被曝出大量漏洞,通过查看cve相关资料,最早的WebLogic漏洞是CVE-2000-0499,存在于是WebLogic3.1.8到4.5.1之间的版本,远程攻击者可通过该漏洞来查看jsp程序的源码,通过cve官方统计从2000年至今WebLogic已经被爆出268个漏洞。
WebLogic被曝出多个反序列化漏洞,Oracle官方相继发布了一系列反序列化漏洞补丁。但是近期,WebLogic又被曝出之前的反序列化漏洞补丁存在绕过安全风险,用户更新补丁后,仍然存在被绕过并成功执行远程命令攻击的情况。
序列化指的是把对象转换成字节流,便于保存在内存、文件、数据库中;而反序列化则是其逆过程,由字节流还原成对象。Java中ObjectOutputStream类的writeObject()方法可以实现序列化,ObjectInputStream类的readObject()方法用于反序列化。
java类ObjectInputStream在执行反序列化时,并不会对自身的输入进行检查,这就说明恶意攻击者可能也可以构建特定的输入,在ObjectInputStream类反序列化之后会产生非正常结果,利用这一方法就可以实现远程执行任意代码。
WebLogic采用黑名单的方式过滤危险的反序列化类,所以只要找到不在黑名单范围内的反序列化类就可以绕过过滤,执行系统命令。这次的漏洞就是利用了这一点,通过 JRMP(Java Remote Messaging Protocol ,是特定于 Java 技术的、用于查找和引用远程对象的协议)协议达到执行任意反序列化内容。
恶意攻击者可利用反序列话漏洞,通过构造恶意请求报文远程执行命令,如查看服务器上相关敏感文件、进行木马的远程上传等,致使用户敏感文件泄露,服务器遭受攻击等,存在反序列化漏洞的站点如下:
除了反序列化漏洞,WebLogic还有存在ssrf、弱口令、xss等安全漏洞,SetupUDDIExploer.jsp就存在ssrf和xss漏洞,xss利用代码如下:
Ssrf漏洞代码如下
通过提交如下url:
3 WebLogic漏洞统计
对WebLogic爆发的通用型漏洞统计如下:
cve名称 | 影响版本 | 漏洞危害 |
---|---|---|
CVE-2017-10178 | 10.3.6.0,12.1.3.0, 12.2.1.1 ,12.2.1.2. | Unauthenticated attacker with network access via HTTP to compromise Oracle WebLogic Server |
CVE-2017-10148 | 10.3.6.0, 12.1.3.0, 12.2.1.1 and 12.2.1.2 | allows unauthenticated attacker with network access via T3 to compromise Oracle WebLogic Server |
CVE-2017-10147 | 10.3.6.0, 12.1.3.0, 12.2.1.1 and 12.2.1.2 | allows unauthenticated attacker with network access via T3 to compromise Oracle WebLogic Server |
CVE-2017-10137 | 10.3.6.0 and 12.1.3.0 | allows unauthenticated attacker with network access via HTTP to compromise Oracle WebLogic Server |
CVE-2017-10123 | 12.1.3.0 | allows low privileged attacker with network access via HTTP to compromise Oracle WebLogic Server. |
CVE-2017-10063 | 10.3.6.0, 12.1.3.0, 12.2.1.1 and 12.2.1.2 | allows unauthenticated attacker with network access via HTTP to compromise Oracle WebLogic Serve |
CVE-2017-3531 | 12.1.3.0, 12.2.1.0, 12.2.1.1 and 12.2.1.2 | allows unauthenticated attacker with network access via HTTP to compromise Oracle WebLogic Server |
CVE-2017-3506 | 10.3.6.0, 12.1.3.0, 12.2.1.0, 12.2.1.1 and 12.2.1.2 | allows unauthenticated attacker with network access via HTTP to compromise Oracle WebLogic Server |
CVE-2017-3248 | 10.3.6.0, 12.1.3.0, 12.2.1.0 and 12.2.1.1 | allows unauthenticated attacker with network access via T3 to compromise Oracle WebLogic Server. |
4 如何防范WebLogic漏洞
由于WebLogic承载着系统应用的发布,所以其重要性也是不可估量,那么我们该怎么去面对WebLogic的漏洞,来保障系统的安全,可采用如下措施:
Ø 经常关注weblogi的安全情况,对其爆发的最新漏洞进行及时升级或打补丁;
Ø 尽量关闭WebLogic在公网上的开放,仅限于在内网进行维护、管理;
Ø 修改WebLogic的默认端口7001以及后台的默认访问路径;
Ø 定期对服务器进行巡检,查看是否有文件被恶意修改;
Ø 部署waf等安全措施,可以在一定程度上减轻该漏洞的危害;
Ø 如果业务不需要UDDI功能,就关闭这个功能可以删除uddiexporer文件夹;
关注我们
对web安全有兴趣的小伙伴可以关注或加入我们,TideSec安全团队: